如何使用RequireJS加载页面特定的JS文件?

时间:2012-03-16 23:37:50

标签: javascript requirejs

我有一个使用RequireJS的多页网站,它会加载一个启动文件(boot.js),然后需要app.js.

app.js处理所有逻辑,所有其他模块初始化通过app.initModule()(只是一个require()调用包装器)发生。

我还有一个app.loadPageJS()来加载页面特定的JS文件(基于window.location.pathname,例如,www.domain.com/path/to/file.html会自动加载/ _assets / JS /页/路径/到/ file.js)

此功能可以打开/关闭,并通过向主体添加“无自动加载”或“自动加载”类别来覆盖。

现在,我的方法不够健全。首先,url重写会破坏机制,对于两个,如果关闭loadPageJS,除非我有权访问body标签,否则我不能包含特定于页面的JS文件(对于使用模板系统的网站,添加body标签的类并不总是一个选项。)

包含页面特定代码的其他方法有哪些?我宁愿避免以下情况:

  • 将特定于页面的代码添加到global.js文件中并执行检查并仅运行某些代码集

  • 使用pageName变量(基本上与上面类似)

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果页面上的不同模块由唯一ID(包含在ID为'newsletter'的div中包含的新闻稿模块等)划分,则可以测试DOM中模块元素是否存在并有条件地加载运行该模块所必需的JS文件。因此,它不是特定于页面的,而是特定于模块的。