论坛首页 Web前端技术论坛

AMD规范:简单而优雅的动态载入JavaScript代码

浏览 23639 次
精华帖 (0) :: 良好帖 (18) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-12-21  
dexter_yy 写道
啊,原来这里已经有人在讨论了啊

好巧……我正好在18号的D2前端技术论坛上介绍了相关的东西和我自己的一些实现,主题是《通用JS时代的模块机制和编译工具》,二楼提到的一些问题其实并不存在XD

http://www.d2forum.org/d2/5/

除了Kris Zyp的这篇文章,幻灯片里也给出了其他一些资料的链接

幻灯片和演讲稿:http://www.limboy.com/2010/12/19/module-and-compiler-for-common-js/

发现这个话题还是很热门的,有些出乎我的预料(上周被关注了好多次
这里整理一下我们项目用到的加载机制吧,以前都只是讨论,并未完整发出。

对于动态加载方面,我没研究过相关标准,开发时也没有找到理想的参照,都是由实际开发中的需求推动,最终演进出目前的模式:
独立依赖声明文件,与JS文件同名同路径,后缀不同
文件 <-> 模块 一一对应 (基于ExtJs,模块即组件的概念,有独立命名路径,能与路径进行相互转换)
程序汇总所有依赖数据
前端预加载依赖数据,一次计算到位并请求,服务器合并返回
异步加载,执行回调
调试模式下服务器计算依赖,以静态script加载

之前还和dojotookit在另外一个帖子里讨论过加载机制的问题,就目前的情况来说,以上方案是最符合我们项目实际需求的:
1. 独立依赖声明,使得汇总程序容易编写,而按前面说的规范来,还需要从JS代码中解析读取,难度不小(至少对我来说)。
2. 我们使用的ExtJs库并未按此标准来
3. 我们的应用领域是浏览器端动态加载,项目也属于私有,没有必要遵循什么规范。因为这些模块只是基于自己的架构,本来就不是通用的,也就无所谓统一了。(Node.js属于服务端技术,不存在并行串行加载问题,也不用汇总程序。Dojo作为通用框架,本身就已经是此规范了,采用它也理所当然)

还是前面说的那句话,没有万能的解决方案

P.S.
其实我觉得,对于前端来说,更关注的还是加载方案的可行性、可维护性及性能方面,对于通用(common),应该没人关注吧?
绝大多数都是基于某个JS库开发,没有日后移植/通用的可能性。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics