1)您在后端使用什么语言?
您可以将脚本配置保存在数据库或配置文件中。(例如:页面page1
有模块:module1
、、module2
和module4
等)。
我有这样一个 php 模板文件,用于<script>
在我的页面上生成标签:
<script src="http://requirejs.org/docs/release/1.0.1/minified/require.js"></script>
<script>
require([
<?php echo "'". implode("',\n\t'", $this->scripts) . "'\n"; ?>
], function(a){
function run(page) {
if ( window.hasOwnProperty(page) ) {
window[page].start();
}
}
var page = '<?php echo $this->page; ?>';
run('all'); // activating scripts needed for every page
run(page); // and for current page
});
</script>
PS脚本要求window[page]变量。index.js
我的意思是,页面的每个 .js 脚本——例如index
页面是window.index
可变的。(我知道,这不太好 - 阅读 PPS ;))
PPS我是 requireJS 的新手(我今天才知道),这是我的初稿,我想,我会用另一种方式来完成它:
2) 作为现在的一个概念 :) 您将脚本保留为 AMD 模块(不是通常的脚本,而是 requireJS 的模块)。您可以保存在.json
文件中的模块映射:
{
'index' : [ 'news', 'banners' ],
'contacts' : [ 'maps', 'banners', 'donate' ],
'otherpage' : [ 'module1', 'module2' ]
}
您应该将页面名称或页面 ID 传递给main.js
(您可以在 DOM 元素中传递此值 - 在站点模板或模板变量中)。所以main.js
知道页面名称,并加载您的modules.json
文件。它获取特定的模块和requires
它们。
main.js
还可以保留每个页面上需要的依赖项(例如 jquery、一些 jquery 插件等)(jquery 插件更好地包装为模块)
PS对不起我的英语