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>
P.S. скрипт запрашивает переменную window [page]. Я имел в виду, что каждый скрипт .js для страницы - например, index.js
для index
страницы делает переменную window.index
. (Я знаю, это не так хорошо - читай P.P.S;))
P.P.S. Я новичок в требовании JS (я знал об этом только сегодня), и это мой первый черновик, и я думаю, я сделаю это по-другому:
2) Пока как концепция :)
Вы сохраняете свои скрипты как модули AMD (не как обычные скрипты, а как модули для requireJS). Карта модулей, которую вы можете хранить в файле .json
:
{
'index' : [ 'news', 'banners' ],
'contacts' : [ 'maps', 'banners', 'donate' ],
'otherpage' : [ 'module1', 'module2' ]
}
Вы должны передать имя страницы или идентификатор страницы в main.js
(вы можете передать это значение в элемент DOM - в шаблонах сайта или в переменных шаблона).
Так что main.js
знает имя страницы и загружает ваш modules.json
файл. Он получает определенные модули и requires
их.
main.js
также может хранить зависимости, которые необходимы на каждой странице (например, jquery, некоторые плагины jquery и т. Д.) (Плагины jquery лучше переносить в виде модулей)
P.S. извините за мой английский