相同之处

RequireJS 和 SeaJS 都是模块加载器,倡导的是一种模块化开发理念,核心价值是让 JavaScript 的模块化开发变得更简单自然。

不同之处

两者的区别如下:

  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 采取的插件机制则与 JavaScript 语言以及Node 的方式一致:开放自身,让插件开发者可直接访问或修改,从而非常灵活,可以实现各种类型的插件。

还有不少细节差异就不多说了。

总之,SeaJS 从 API 到实现,都比 RequireJS 更简洁优雅。如果说 RequireJS 是 Prototype 类库的话,则 SeaJS 是 jQuery 类库。

最重要的

最后,向 RequireJS 致敬!RequireJS 和 SeaJS 是好兄弟,一起努力推广模块化开发思想,这才是最重要的。

最新文章

  1. [数据库连接池] Java数据库连接池--DBCP浅析.
  2. XStream xml to bean
  3. 解决Firefox浏览器每次打开都弹出导入向导的问题
  4. iOS - Swift Range 范围
  5. 浏览器执行js
  6. 分享我的PL/SQL的优化设置,为开发全面提速
  7. Using Swift with Cocoa and Objective-C(Swift 2.0版):开始--基础设置-备
  8. Linux中.a,.la,.o,.so文件的意义和编程实现
  9. springMVC注解及优化
  10. mongoDB创建windows服务启动解决
  11. 使用电脑ODBC测试数据库连接方法
  12. faster-rcnn 笔记
  13. Senparc.Weixin.MP SDK 微信公众平台开发教程(十九):MessageHandler 的未知类型消息处理
  14. MySql笔记二:命令简介
  15. parseDouble()方法
  16. window apidoc的安装和使用
  17. SQL Server 常见数据类型介绍
  18. vue2.0过滤器
  19. Android自定义视图二:如何绘制内容
  20. 【代码笔记】iOS-UIAlertView自动关闭

热门文章

  1. python实战===代码
  2. monkey测试===修改adb的默认端口
  3. web前端教程:用 CSS 实现三角形与平行四边形
  4. FineReport——JS二次开发(CSS改变控件样式)
  5. Leetcode 之Longest Common Prefix(34)
  6. linux下不解包查看tar包文件内容
  7. hdu5823
  8. .NET ORM SqlQuery
  9. CentOS 6.4 系统上如何安装 tomcat 8
  10. jq函数绑定与解绑