ПРИМЕЧАНИЕ: я создал плагин jQuery, который является моей попыткой решения этой проблемы. . Я уверен, что его можно улучшить, и я, вероятно, упустил из виду множество вариантов использования, поэтому, если кто-то хочет оставить отзыв, не стесняйтесь :-) https://github.com/WickyNilliams/ReadyBinder
Я не У меня нет проблемы как таковой, но я подумал, что это будет интересный момент для обсуждения, и я надеюсь, что у людей есть несколько интересных идей по этому поводу.
В основном я работаю над крупным веб-сайтом, и все чаще мы пишем все больше и больше JavaScript. Это нормально, мне нравится уникальный подход JS, и я нахожу причудливые черты некоторых мрачных анналов языка милыми ;-) Однако одна вещь, которая меня всегда беспокоила, - это то, как управлять событиями готовности документа, когда они становятся все более крупными. с течением времени (и, как результат, менее сфокусированным / специфичным для обслуживаемой страницы)
Проблема в том, что у нас есть один JS-файл (объединенный и уменьшенный, хотя для моих вопросов это несущественно). Большая часть JS написана с использованием шаблона раскрывающего модуля, и мы предпочитаем jQuery. Таким образом, вся наша функция JS логически сгруппирована в методы, пространство имен, а затем прямо в нижней части файла сценария у нас есть это
$(function(){
//lots of code here, usually calling encapsulated methods
//on our namespaced revealing module
});
Проблема в том, что не весь код в этом обработчике готового документа относится к каждой странице. Например, на одной странице только 10% может быть актуальным, на другой, возможно, 80% может быть актуальным. Мне это кажется невероятно неправильным, я чувствую, что должен выполнять только тот код, который мне нужен для каждой страницы, в основном для эффективности, но также для удобства обслуживания.
Я искал в Google подходы к решению этой проблемы, но ничего не нашел, возможно, я просто ищу не то!
В общем, у меня такие вопросы:
Ждите мнений людей по этому поводу.
Ура