我听过并读过几篇关于延迟 JavaScript 加载的文章,我对此非常感兴趣。对于在可加载和执行的 JavaScript 数量有限的移动平台上可能有用的 Web 应用程序来说,这似乎很有前途。
不幸的是,大多数文章都在非常高的层次上谈论这个。如何解决这个问题?
编辑
通常,所有 JavaScript 在页面加载时加载,但是,可能有一些函数在特定操作发生之前不需要,此时应加载 JavaScript。这有助于减轻浏览器在页面加载时的负担。
具体来说,我有一个大量使用 JavaScript 的页面。当我在手机上加载页面时,它无法正确加载。在调试页面时,我删除了一些 JS 函数。一旦删除了足够多的内容,该页面就会突然工作。
我希望能够根据需要加载 JS。甚至可能消除仅用于启动的功能。
最佳答案
基础知识很简单 - 将您的 JavaScript 代码分解为逻辑上独立的组件并仅加载您需要的部分。根据您正在构建的内容,您可以使用:
加载程序:
- Modernizr.load (或 yepnope.js 本身)
- LABjs
- Many , many , many其他延迟加载库。
依赖管理器(也是加载器):
- Require.js
- dojo.require
- JavaScript MVC's steal.js
- 其他几个依赖管理库。
这些工具利用各种技术来延迟脚本的加载、脚本的执行、管理依赖项等。您需要什么取决于您正在构建什么。
您可能还想通读 this discussion了解更多有关使用此类技术的利弊的信息。
对编辑的回应:
没有真正好的方法来卸载您已经加载的 JavaScript - 您可以获得的最接近的近似是将所有加载代码保留在应用程序的命名空间中,然后“清理” up”,方法是将该 namespace 和对它的所有引用设置为 null
。
关于javascript - 延迟 JavaScript 加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7272110/