首页
学习
活动
专区
工具
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)

2K10

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

34500

解决动态的符号冲突

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

2.1K30

Postgresql备复制冲突原理

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

96110

前端模块化开发的价值

本文将从实际项目中遇到的问题出发,讲述模块化能解决哪些问题,以及如何使用 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、UMD、commonJS

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

65740

AMD && CMD

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

1.8K10

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.6K50

【前端面试题】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

1.9K20

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的时间

30910
领券