Скорость ускорения при выполнении условной функции? - PullRequest
0 голосов
/ 07 октября 2011

У меня есть веб-сайт с несколькими страницами, каждая из которых имеет собственные обработчики событий, прикрепленные к определенным элементам.У каждой страницы есть идентификатор в html-разметке (# page1, # page2, ...).

В моем файле javascript для веб-сайта я разделил функции для каждого сайта в самоисполняющихся модулях, упростив вот так::

//module 1 for stuff that happens on #page1
(function() {
    // stuff to happen, events, delegations, preparations, etc
})();

Я думал, что смогу выполнить определенные модули, связанные со страницей, только если #id найден в текущем документе, например:

if( $("#page1").length ) {
   // call module 1
};

..., потому что большое делегирование событийпроисходит в некоторых модулях.

Это общий / хороший подход для ускорения вещей?Или лучше включать модули в отдельные js-файлы только на тех подсайтах, где они нужны?Или любой другой метод / идеи?

1 Ответ

5 голосов
/ 07 октября 2011

Поместите весь код в один файл js, чтобы он был кеширован.Поместите идентификатор в тело или подобный элемент, затем поместите каждый модуль кода в отдельную функцию.Затем создайте объект для хранения ссылок на модули, связанных с идентификаторами элементов тела, затем в onload:

var modules = {
   id1: function() { /* stuff for page 1 */},
   id2: function() { /* stuff for page 2 */},
   ...
}
var id = document.body.id
if (id && id in modules) {
  modules[id]();
}

Затем вы просто дадите телу идентификатор функции, которая должна выполняться для этой страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...