这可能是过早优化的情况,也可能是“依赖”的事情......但是有没有办法推迟解析/执行部分Javascript,直到代码的这些部分被证明是需要?
就我而言,我正在使用Rails资产管道,它可以方便地将我的所有JS捆绑/缩小为一个文件。但是,据我所知,需要在每个页面加载时重新加载此文件。但部分文件仅用于某些页面。
我的模块使用以下模式编码:
(function (window, undefined) {
... all code here ...
})(window);
我喜欢的是一种包装每个模块的方法,只需在需要它们的页面上解析/加载/执行它们,例如在DOM中找到<div class='use-module-x'>
标记。
我知道我可以在我的模块的init函数中执行if/then
,以防止它在不需要时尝试初始化自己,但似乎更好的是避免让JS引擎考虑这个代码根本不需要。
即使这不是一个真正的问题,我很好奇是否/如何做到。
答案 0 :(得分:1)
我认为你所寻找的正是require.js provides。使用基于约定的方法,您可以定义将以托管方式导入页面的代码模块。请参阅getting started guide和api reference。