Нужно ли связывать jQuery или другую стороннюю библиотеку с логическим кодом?
В настоящее время разработчики веб-интерфейса имеют такие инструменты, как webpack, browserify для упаковки файлов javascript вместе. Если сценарии выполняются на сервере, упаковка выглядит лучше, чем отдельная загрузка каждого файла за раз. Но если мы развернем сценарий на стороне клиента, нужно ли нам всегда упаковывать все сценарии в один файл? Или просто код, написанный нами самими?
Например, jQuery - очень популярная сторонняя библиотека, которая используется повсеместно. Если мы используем webpack для связывания jQuery с нашим логическим кодом, да, это сокращает время HTTP-запросов, но тратит кэш браузера, что может уменьшить трафик, если пользователь снова заходит на сайт или есть несколько страниц, использующих jQuery.
Поэтому мой вопрос: следует ли нам всегда связывать весь код вместе, чтобы уменьшить однопроходный трафик или отдельно развернуть распространенные сторонние библиотеки, особенно при использовании npm/bower + webpack/browserify/elixir. Какова лучшая практика?
1 ответ
Как вы упомянули, связывание jQuery с вашим собственным кодом сводит на нет преимущества кэширования, и jQuery не маленький. Кроме того, вполне вероятно, что вы когда-нибудь захотите изменить свой код. Обычно вы не меняете jQuery, но вы все равно заставляете клиента перезагружать его.
Поэтому рекомендуется раздельно распространять сторонние библиотеки, в идеале с гораздо более высоким временем кэширования.