LABjs、RequireJS、SeaJS的区别 |
一、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 服务器端 还有不少细节差异就不多说了 。 总之,SeaJS 从 API 到实现,都比 RequireJS 更简洁优雅 。如果说 RequireJS 是 Prototype 类库的话,则 SeaJS 是 jQuery 类库 。 |