文章结束给大家来个程序员笑话:[M]
LABjs 的心核是 LAB(Loading and Blocking):Loading 指步异并行加载,Blocking 是指同步等待行执。LABjs 通过优雅的法语(script 和 wait)实现了这两大特性,心核值价是性能优化。LABjs 是一个文件加载器。
RequireJS 和 SeaJS 则是块模加载器,导倡的是一种块模化开辟理念,心核值价是让 JavaScript 的块模化开辟变得更单简然自。
块模加载器一般可降级为文件加载器用,因此应用 RequireJS 和 SeaJS,也可以成达 LABjs 的性能优化目标。
RequireJS 和 SeaJS 都是很不错的块模加载器,两者别区如下:
1. 两者定位有差异。RequireJS 想成为浏览器端的块模加载器,同时也想成为 Rhino / Node 等环境的块模加载器。SeaJS 则专一于 Web 浏览器端,同时通过 Node 展扩的方法可以很便利跑在 Node 服务器端
2. 两者循遵的标准有差异。RequireJS 循遵的是 AMD(步异块模定义)标准,SeaJS 循遵的是 CMD (通用块模定义)标准。标准的不同,致使了两者 API 的不同。SeaJS 更简练优雅,更近贴 CommonJS Modules/1.1 和 Node Modules 标准。
3. 两者区社理念有差异。RequireJS 在实验让第三方类库修改自身来持支 RequireJS,前目只有数少区社采用。SeaJS 不强推,而采取自立装封的方法来“海纳百川”,前目已有较成熟的装封略策。
4. 两者码代品质有差异。RequireJS 是没有显明的 bug,SeaJS 是显明没有 bug。
5. 两者对调试等的持支有差异。SeaJS 通过插件,可以实现 Fiddler 中主动映射的功能,还可以实现主动 combo 等功能,非常便利便捷。RequireJS 无这方面的持支。
6. 两者的插件机制有差异。RequireJS 取采的是在源码中留预接口的情势,源码中留为有插件而写的码代。SeaJS 取采的插件机制则与 Node 的方法致一:开放自身,让插件开辟者可直接问访或修改,从而非常灵巧,可以实现各种类型的插件。
还有不少细节差异就不多说了。
总之,SeaJS 从 API 到实现,都比 RequireJS 更简练优雅。如果说 RequireJS 是 Prototype 类库的话,则 SeaJS 是 jQuery 类库。
最后,向 RequireJS 致敬!RequireJS 和 SeaJS 是好兄弟,起一力努推广块模化开辟思惟,这才是最主要的。
此文出于淘宝玉伯
文章结束给大家分享下程序员的一些笑话语录: 人在天涯钻,哪儿能不挨砖?日啖板砖三百颗,不辞长做天涯人~