0

这可能是过早优化的情况,也可能是“它取决于”的事情......但是有没有办法推迟 Javascript 部分的解析/执行,直到可以证明需要这些代码部分?

就我而言,我使用的是 Rails 资产管道,它可以方便地将我的所有 JS 捆绑/缩小到一个文件中。但是,据我了解,每次加载页面时都需要重新加载此文件。但文件的某些部分仅在某些页面上使用。

我的模块使用以下模式编码:

(function (window, undefined) {
... all code here ...
})(window);

我想要的是一种包装每个模块的方法,以便它们仅在需要它们的页面上解析/加载/执行,例如通过<div class='use-module-x'>在 DOM 中查找标签。

我知道我可以if/then在模块的 init 函数中执行一个操作,以防止它在不需要时尝试自行初始化,但似乎最好避免让 JS 引擎在不需要时考虑此代码。

即使这不是一个真正的问题,我也很好奇是否/如何做到这一点。

4

1 回答 1

1

我认为您正在寻找的正是require.js 提供的。使用基于约定的方法,您可以定义将以托管方式导入页面的代码模块。请参阅入门指南api 参考

于 2013-03-07T18:28:11.227 回答