Оптимальный размер пакета JavaScript
-
09-09-2020 - |
Вопрос
Когда вы обслуживаете JavaScript на страницу, лучше всего служить одному файлу упакованным, минимутированным и GZIP, чтобы уменьшить задержку и время запроса.
Но лучше отправлять
- Один большой пакет для всего сайта
- Один большой пакет для каждой страницы на вашем сайте.
-
cdn Я не хочу загружать с CDN
с 1. Вы получаете больше нагрузки на начальную нагрузку, но тогда весь ваш JavaScript кэшируется для всего визита на ваш сайт.
с 2. Вы загружаете только столько, сколько необходимо для страницы, чтобы начальное время загрузки уменьшается, но у вас нет того же файла, кэшированного на каждой странице на вашем сайте.
Какой метод предпочтительнее?
Я использую node.js
, чтобы служить моим JavaScript и использую ender
, чтобы упаковать мой JavaScript.
Редактировать
Физ, по-разному, я думаю о внедрении автоматизации на моей упаковке. Эта автоматизация будет либо упасть все в один файл для всего нашего веб-сайта или пакет страницы, определенный список файлов в один файл для каждой страницы.
У меня пока нет статистики в моих файлах JavaScript, но мне было любопытно, что и из двух автоматизмов, которые я должен реализовать.
Решение
Вариант 1 наполнено.
Вариант 2 - плохая идея (по причинам, которые вы указываете).
Вам отсутствует вариант 4, который должен иметь один большой сердечный пакет с обновлениями экземпляра (вторичный JavaScript включает в себя) по мере необходимости ... Нет причин для загрузки вашего кода Google Maps на каждой странице, когда вам это нужно Вот и там, например. Но нет никаких причин, чтобы повторно служить вашим «основным» пакетам.
Это вообще опция, которую я использую. Когда скорость является супер-важной, я использую поддоменность, которая имеет практически обо всем, что выделяется из Apache (без сеансов или файлов cookie, PHP и т. Д.). У меня на самом деле есть один сервер, который действует как центральный статический репозиторий для всех моих клиентов, и дополнительное запись имени в DNS для «статического» с использованием виртуальных доменов.
Добавлено: В ответ на вашу редактирование, я думаю, что наиболее подходящим является состоит в том, чтобы иметь список файлов, которые должны быть соединены в вашей автоматизации. Вместо того, чтобы принимать «все», просто возьмите все элементы в массиве «TO_PACAKAKGE».