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