Объединение функционала в один .js-файл
Здравствуйте,
При подключении к html-документу скриптов хочется объединить функционал для работы разных страниц в один документ, но возникает куча ошибок на страницах, для которых не подключены дополнительные библиотеки. Например, есть страницы index.html и login.html, и хочется сделать для них один JS-файл. На странице login.html подключен jQuery Validate и все ок, но на index.html нет форм и плагин валидации там не нужен. В следствие этого возникает проблема на следующей строке js-файла: $("[data-mask]").inputmask(); На текущий момент решаю эту проблему таким образом: if ($('form').is('#login-form')) { $("[data-mask]").inputmask(); } Но данный вариант кажется не совсем удачным и элегантным. Есть также вариант использования Minify, но в этом случае, если валидация форм не нужна будет на других страницах, то файл с вышеприведенной строкой будет состоять только из нее одной. Как лучше оптимизировать эту ситуацию? Спасибо. |
Либо вы подключаете один js-файл, отлаженный, упакованный, либо, если жаба давит :) по поводу N-байт кода, то сервер должен знать к какой странице эти N-байт подключить - подключайте.
Ваш один js-файл будет кеширован, как и jQuery, подключаемый например с сервера Гугл, с большой долей вероятности уже есть в кеше ваших пользователей. |
Цитата:
Ну а как вариант с выключением ненужных кусков кода через .is() ? |
Ну а как вариант с выключением ненужных кусков кода через .is() ?
Вы думаете это эффективнее по сравнению отдавать один упакованный файл и более не заботиться об этом? |
Цитата:
|
Простой вариант - сжать все в один файл. Количество обращений сведется к одному. Последующие переходы по страницам ускорятся. Однако первоначальный размер файла будет возможно больше чем требуется.
Тогда более сложный вариант - один общий файл + допфайлы где нужны. Тут возможно стоит выявить наиболее посещаемую страницу и оптимизировать первоначальный файл под нее. Если это главная сайта, то будет полезно выделить, скажем, тяжелые скрипты галереи в отдельный файл и грузить его только на странице галереи. Разумеется, все это имеет какой-то смысл только если проведена первостепенная оптимизация - gzip, перенос скриптов в конец страницы и так далее. |
Цитата:
|
Часовой пояс GMT +3, время: 03:55. |