首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS模块加载框架 SeaJS

SeaJS是一个遵循CMD规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制,兼容所有主流浏览器 SeaJS的主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载...,让开发可以专注于代码本身的逻辑 上手示例 html中加载初始化模块init.js,init 中调用 module1 模块,同时 module1 模块调用 module2 模块 ?...模块的定义 SeaJS中使用“define”函数定义一个模块 define(id?, deps?...文件的绝对路径 require("http://example/js/a"); (2)相对地址——用载入函数所在js文件的相对地址寻找模块 例如有 js/a.jsjs/m/b.js 在b.js.../a"); (3)基址地址——如果载入字符串既不是绝对路径也不是以”./”开头的相对位置,则相对SeaJS全局配置中的“base”来寻址

6K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    iOS 静态.a冲突解决

    sdk报错遇到的不少,如图有价值也很明显的问题点在于: duplicate symbol xxxx in xxxx 这种问题一般都是文件里面使用C语言定义的全局变量名或是函数名,在导入的时候因为重复产生了冲突...(附带一个不高级方法,若冲突的文件你能修改,也可以直接改名) OK,开始解决问题,解决问题还得从我们导入的第三方静态入手,我们用的直播sdk,先用命令行查看它的相关信息: cd /Users/zlwh...以上问题就解决了,这里总结一些lipo命令: 1.依次查看所有需要合并的lib所支持的框架类型 lipo -info xxx.a 2.将lib拆分出不同类型的.a(armv7、armv7s、i386.../xxx.a 5.从.o文件中合并成静态: libtool -static -o ...../xxx.a *.o 6.合并静态 lipo -create 111.a 222.a 333.a -output 444.a (表示将111.a、222.a、333.a合并成444.a)

    2.1K10

    JavaScript中的三种模块化规范AMD CMD CommonJS

    为什么要使用模块化 网站越来越复杂,js代码、js文件也越来越多 1.命名冲突 2.文件依赖问题 程序中的模块化 开发效率高 一次编写多次使用 方便维护了(维护的成本更低)模块之间有高耦合低内聚的特点...实现:node.js nodejs中,原生已经实现了模块化,已经不需要导入第三方了,可以直接require() 服务器端与浏览器端的技术选型?...定义模块 define 定义模块 define(function(){}) 函数体内的方法属性都属于这个方法,对外有封装性;解决了命名冲突问题,使js代码有了封装性 直接调用 jQuery 插件等非标准模块的方法...module.exports = ... }) 启动模块 seajs.use 加载入口模块,我们把define定义的js就叫模块 这个用于在html代码里面的加载 seajs使用的时候,可以先在配置文件中...js 代码,一定要在 seajs.use 内部通过 window.onload 或者 $(function(){}) requirejs与seajs的区别 requirejs是优先加载的 seajs

    37600

    解决动态的符号冲突

    每个程序都为他们写一遍代码很不划算,于是独立出来成了,在多个程序之间共享。一个也可以使用别的。有两种共享的办法:静态的,动态的。 在编译时,把的代码复制一份合并到可执行文件里的,是静态。...在运行时,把的代码加载一份到内存里的,是动态。 动态更节省资源,不用被复制很多次,更新也方便。 负责链接的东西,叫做链接器(linker),负责加载的叫做加载器(loader)。...和符号有关的编译器选项和环境变量选项 如果条件允许,尽量不要在同一个程序中出现两份代码,出现相同符号的情况,造成冲突。...如果出现了符号冲突一定要解决:如本例中,假设 main 不可变,已经包含了 lib 的代码。...该选项可以解决符号冲突。 TIPS: 如果想观察加载器的工作,可以使用环境变量 LD_DEBUG=all ./main 来执行程序,会获得详细的解析过程。

    2.3K30

    Postgresql备复制冲突原理

    SQL查询时间长,和备的日志apply发生冲突,如果业务上有长事务、长查询,主库上又再修改同一行数据,很容易造成备的wal日志无法apply。...wal无法apply数据有两个策略: 备告诉主库需要哪些版本,让主库保留,备查询始终能拿到需要的版本,不阻塞apply,因为备总能拿到需要的版本 备apply进入等待,直到备冲突查询结束,继续...(恢复进程)冲突,那么备的apply会出现延迟,也许从备读到的是N秒以前的数据。...主库下发了一条truncate,与备事务冲突,startup process进程开始waiting ... postgres: startup process recovering 000000010000000800000075...其实这样的报错在主库执行一些DDL很容易出来(执行和备事务内锁冲突的语句)autovacuum触发truncate

    1.2K10

    前端模块化开发的价值

    本文将从实际项目中遇到的问题出发,讲述模块化能解决哪些问题,以及如何使用 Sea.js 进行前端的模块化开发。 恼人的命名冲突 我们从一个简单的习惯出发。...文件的依赖,目前在绝大部分类框架里,比如国外的 YUI3 框架、国内的 KISSY 等类,目前是通过配置的方式来解决。...使用 Sea.js 来解决 Sea.js 是一个成熟的开源项目,核心目标是给前端开发提供简单、极致的模块化开发体验。这里不多做介绍,有兴趣的可以访问 seajs.org 查看官方文档。...想在页面中使用某个组件时,只要通过 seajs.use 方法调用。 好好琢磨以上代码,我相信你已经看到了 Sea.js 带来的两大好处: 通过 exports 暴露接口。...如果你还没有尝试,不妨从试用 Sea.js 开始。 (完) 特别感谢这篇文章:http://chaoskeh.com/blog/why-seajs.html 参考了部分内容。

    1K20

    AMD && CMD

    前言 JavaScript初衷:实现简单的页面交互逻辑,寥寥数语即可; 随着web2.0时代的到来,Ajax技术得到广泛应用,jQuery等前端层出不穷,前端代码日益膨胀 问题: 这时候JavaScript...因为每一个模块都是暴露在全局的,简单的使用,会导致全局变量命名冲突,当然,我们也可以使用命名空间的方式来解决。...对于大型项目,各种js很多,开发人员必须手动解决模块和代码的依赖关系,后期维护成本较高。 依赖关系不明显,不利于维护。...目前,主要有两个Javascript实现了AMD规范:require.js和curl.js。...RequireJS 在尝试让第三方类修改自身来支持 RequireJS,目前只有少数社区采纳。SeaJS 不强推,而采用自主封装的方式来“海纳百川”,目前已有较成熟的封装策略。 4.

    1.8K10

    模块化之AMD、CMD、UMD、commonJS

    比如登录是模块、搜索是模块、订单是模块,UI的吐司是组件、select是组件、pick是组件,jq的时间插件、视屏插件。这三者具体怎么区分还真不知道怎么去描述,但是我觉得思想都是一样的。...模块化的优点: 避免变量污染、命名冲突 提高代码复用率 提高可维护性 方便依赖管理 这些优点应该是不需要解释吧,一看就能知道了。...AMD是requireJS推广过程的规范产出,支持异步,所以AMD也是通过require加载模块目前主要有两个Javascript实现了AMD规范:require.js和curl.js。...要说requireJS和seaJS最大的区别就是加载的机制: SeaJS只会在真正需要使用(依赖)模块时才执行该模块 RequireJS会先尽早地执行(依赖)模块, 相当于所有的require都被提前了...只是分享一下这几个规范的大致理解,至于requireJS、seaJS怎么使用,就自行查找资料。 (完)

    69640

    seajs简记

    参考seajs快速入门 一、前端模块化的价值 解决命名冲突 摆脱文件依赖 性能优化 提高可维护性 seajs.use方法调用 通过exports暴露接口 通过require引入依赖 二、Sea.js...的常用 API seajs.config base string    Sea.js 在解析顶级标识时,会相对 base 路径来解析  seajs.use 用来在页面中加载模块 require...约定系统通讯 模块 a. js代码,统一固定的格式      b. 通过基本交互规则,能彼此引用协同工作 模块标识 相对标识:相对标识以 . ...顶级标识:顶级标识不以点(.)或斜线(/)开始, 会相对模块系统的基础路径(即 Sea.js 的 base 路径)来解析 四、 使用步骤 引入sea.js文件(方法与引用jQuery相同) 配置信息 在...: 2 3 // 加载模块 main,并在加载完成时,执行指定回调 4 seajs.use('.

    1.4K20

    30分钟学会前端模块化开发

    因为每一个模块都是暴露在全局的,简单的使用,会导致全局变量命名冲突,当然,我们也可以使用命名空间的方式来解决。...同时,为了避免凌乱的配置,最好不要使用多级嵌套的目录层次来组织代码,而是要么将所有的脚本都放置到baseUrl中,要么分置为项目/第三方的一个扁平结构,如下: www/ index.html js/...四、CMD CMD规范是阿里的玉伯提出来的,实现js为sea.js。...兼容: Chrome 3+ Firefox 2+ Safari 3.2+ Opera 10+ IE 5.5+ 基本应用: 导入Seajs 去官网下载最新的seajs文件,http://seajs.org...是基于AMD规范的模块化, 而像seaJS是基于CMD规范的模块化, 两者都是为了为了推广前端模块化的工具。

    3.9K50

    【前端面试题】10—18道有关模块化开发的面试题(附答案)

    (1)异步模块定义(AMD)规范是 require. js推广的、对模块定义的规范。 (2)通用模块定义(CMD)规范是 SeaJS推广的、对模块定义的规范。...(4)避免了命名冲突。 (5)解决了依赖管理问题 8、你了解 CommonJS规范吗? 定义模块,即一个单独的文件就是一个模块,文件中的作用域独立,文件中定义的变量是无法被其他文件引用的。...16、require.JSSeaJS的异同是什么? 相同之处如下。...SeaJS则专注于Web浏览器端,同时通过node扩展的方式可以很方便地运行在Node服务器端 (2)遵循的规范不同。require.JS遵循的是AMD规范, SeaJS遵循的是CMD规范。...SeaJS更简洁优雅,更贴近 CommonJS Modules/1.1和 Node Modules规范。 (3) require.JS尝试让第三方类修改自身来支持 require.JS

    2K20

    AMD、CMD、RequireJS

    1、为什么要使用模块化 最主要的目的 解决命名冲突 便于依赖管理 其他价值 提高代码可读性 代码解耦,提高复用性 2、CMD、AMD、CommonJS 规范分别指什么?...有哪些应用 1、CMD规范 CMD 即Common Module Definition通用模块定义,CMD规范是国内发展出来的,就像AMD有个requireJS,CMD有个浏览器的实现SeaJSSeaJS...// 定义模块 myModule.js define(function(require, exports, module) { var $ = require('jquery.js') $('div')....addClass('active'); }); // 加载模块 seajs.use(['myModule.js'], function(my){ }); 1、AMD规范 AMD 即Asynchronous...requireJS主要解决两个问题 : 多个js文件可能有依赖关系,被依赖的文件需要早于依赖它的文件加载到浏览器 js加载的时候浏览器会停止页面渲染,加载文件越多,页面失去响应时间越长 // 定义模块

    1.2K30

    折腾不止,从生活大爆炸到前端优化

    前端模块化依赖的主流也就数国内的Seajs和国外的requirejs,这里就不陈述。采用了Seajs作为模块管理器,zepto作为基础文件,lib主要包含了项目中用到的主流第三方文件。...下图中的package模块是文件大集合,打包了很多个JS模块,除去上图中的基础文件和业务模块层,在上线的时候大部分文件都被打包在package.js里。 ...3.2 煎熬期 冲突问题 冲突问题一直存在,在2.0时代不那么明显罢了。原因是测试环境的JS已经被合并过一次。 时间问题 由于刚开始文件比较少,构建速度基本没啥问题。...3.3 深度优化 减少冲突问题 进一步解决的方案还是细分模块,测试环境不进行文件合并,这样冲突的概率几乎很小,因为公共经过2.0的调整已经基本稳定。...JS优化 之前APP内部的JS文件都是通过seajs来下载文件,后来发觉何不直接干脆点直接写下载就好了,优化后下载执行时间下降显著:  注:这里统计的时间,包括了下载JS和执行JS的时间

    32810
    领券