我正在开发新版移动网站。我正在研究使用amd脚本加载器,并将其缩小到require和lsjs。我知道这两者都有很多专业人士和骗子,但我试图将所有这些都用于我网站的移动版本。有没有人在移动级别有这个lib的经验?试着在这里讨论一下人们认为最好的方法。 (拥有1500名代表的人都想创建一个lsjs标签:))。也许这些图书馆的创作者(todd burke或richard backhouse)对此有一个看法
感谢
编辑:
感谢Simon Smith在下面提供了很好的信息。有没有人用过lsjs?它在速度方面看起来非常有前景,但没有用户群,文档或(我认为)require / curl的功能,但看起来仍然很有希望答案 0 :(得分:2)
我会说在您准备好投入生产之前使用RequireJS。然后编译脚本并用Almond替换RequireJS。这是James Burke(RequireJS的作者)制作的一个简单的库,所以你可以依靠它无缝地工作:
一些开发人员喜欢使用AMD API编写模块化JavaScript代码, 但在进行优化构建后,他们不希望包含完整版本 AMD装载机就像RequireJS,因为它们不需要所有这些 功能。某些用例(如移动设备)对文件非常敏感 尺寸。
通过在构建文件中包含杏仁,不需要RequireJS。 使用Closure Compiler和缩小时,杏仁约为1千字节 gzip压缩。
https://github.com/jrburke/almond
修改强>
Curl.js也是一个选项。我没有使用它,但知道它比RequireJS小很多。做了一些关于原因的研究:
RequireJS通过Curl(通过James Burke)执行以下操作:
- 支持多版本/上下文,对模拟测试很有用,但是没有它就可以使用
- 支持通过require加载普通JS文件,不必是AMD模块
- 支持特殊检测并使用旧版本的jQuery(如果使用jQuery 1.7.1或更高版本,则不应该出现问题)
- (目前)更好地支持简化包装的commonjs样式:define(function(require){});
简而言之,如果您只想在应用中处理AMD模块, 不需要多版本/上下文支持,也没有使用 简化的commonjs包装样式,或者使用旧的jQuery 卷曲可能是一个不错的选择。
https://groups.google.com/forum/?fromgroups=#!topic/requirejs/niUyLZrivgs
Curl的作者:
RequireJS在curl.js以外的地方运行,包括WebWorkers和 node.js中它也比curl.js有更多的“战斗测试” 意味着边缘情况下的错误更少。 curl.js也缺少一些 重要的功能,例如预加载隐式依赖项和 支持AMD包装的commonjs模块。这些都进来了 版本0.6(下周末)。
在正面,curl.js ......
小到RequireJS大小的1/4 - 即使捆绑了 JS!和domReady!插件仍然不到一半大小。
加载模块的速度比RequireJS快,但仅有意义 IE6-8或开发(非构建)环境。
支持可插拔 模块加载器用于AMD以外的格式(我们正在开展解包 例如,CJSM / 1.1和CJSM / 2.0)。
支持基于配置 通过IOC容器(如wire.js)(通过cram.js)进行依赖管理。
支持内联css(通过cram.js)和css的连接(通过 cram.js 0.3年底)
https://github.com/cujojs/curl/issues/35#issuecomment-2954344
答案 1 :(得分:0)
2014年,我遇到了同样的问题。为了使网站在移动设备上快速运行,我还有一些其他要求:
在评估了RequireJS,curl,lsjs和其他一些工具之后,我得出结论,它们都不足够接近我的项目需求。最终,我决定创建自己的lockandload AMD-loader。当时我没有开源,因为那意味着编写文档。但是我最近用新文档将其开源,以防其他人受益。