什么(amd)脚本加载器用于移动网站

问题描述 投票:2回答:2

我正在开始研发移动网站的新版本。我正在研究使用amd脚本加载器,并将其缩小到require和lsjs。我知道这两者都有很多专业人士和骗子,但我试图将所有这些都用于我网站的移动版本。有没有人在移动级别有这个lib的经验?试着在这里讨论一下人们认为最好的方法。 (拥有1500名代表的人都想创建一个lsjs标签:))。也许这些图书馆的创作者(todd burke或richard backhouse)对此有意见

谢谢

编辑:

感谢Simon Smith在下面提供了很好的信息。有没有人用过lsjs?它在速度方面看起来非常有前景,但没有用户群,文档或(我认为)require / curl的功能,但看起来仍然很有前景

mobile local-storage requirejs amd
2个回答
2
投票

我会说在您准备好投入生产之前使用RequireJS。然后编译脚本并用Almond替换RequireJS。这是James Burke(RequireJS的作者)制作的一个简单的库,所以你可以依靠它无缝地工作:

一些开发人员喜欢使用AMD API来编写模块化JavaScript,但在进行优化构建之后,他们不希望包含像RequireJS这样的完整AMD加载器,因为他们不需要所有这些功能。某些用例(如移动设备)对文件大小非常敏感。

通过在构建文件中包含杏仁,不需要RequireJS。当使用Closure Compiler和gzip进行缩小时,杏仁大约为1千字节。

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,那么curl可能是一个不错的选择。

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 ......

小到要求的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


0
投票

早在2014年,我遇到了同样的问题。我有一些额外的要求,以便在移动设备上快速建立网站:

  • 小到足以内联(以避免支付额外的请求税以获得装载机)。
  • 内联配置文件(删除请求)。
  • 在纯javascript中配置文件(没有解析开销)。
  • 让浏览器进行实际加载(目前浏览器很聪明)的文件。
  • 将所有异步加载的模块连接在一起。
  • 支持单页应用程序,其中包含使用散布的$(function(){...})构造的遗留代码,但我坚持加载jQuery后期和异步加速。

在评估了RequireJS,curl,lsjs和其他一些人之后,我得出结论,他们中没有一个能够达到我项目所需要的水平。最终我决定创建自己的lockandload AMD-loader。我当时没有开源,因为这意味着编写文档。但我最近用新文档开源,以防其他人受益。

© www.soinside.com 2019 - 2024. All rights reserved.