Должен ли я скопировать все мои источники JavaScript в один файл? - PullRequest
8 голосов
/ 13 ноября 2011

В текущем веб-проекте я использую несколько плагинов jQuery и инициализирую их непосредственно перед закрывающим тегом body. Мой вопрос, с точки зрения времени загрузки / производительности, было бы лучше для меня, чтобы взять все такие инициализации и скопировать их в один, внешний файл JS? плагины инициализируются одинаково на всех страницах сайта, так что, казалось бы, загрузка одного, централизованный файл будет лучше, нет? спасибо за любой отзыв.

Ответы [ 3 ]

6 голосов
/ 13 ноября 2011

Все зависит от того, для чего вы разрабатываете, но вот некоторые практические правила.

HTTP-запросы означают накладные расходы (особенно через HTTPS), поэтому постарайтесь сделать как можно меньше, для мобильных устройств это очень важно. хотя есть несколько исключений; Ленивая загрузка файлов JavaScript, которые не нужны при инициализации приложения, иногда разумна, поэтому они кэшируются, когда это действительно необходимо, использование CDN для популярных библиотек иногда может привести к значительному повышению производительности из-за загрузок паралелей.

Сохраняйте загрузки как можно меньше, поэтому минимизируйте все JavaScript и CSS, некоторые даже уменьшите HTML.

убедитесь, что заголовки кэша установлены правильно (некоторые устанавливают их на год или более), и при развертывании новой версии вашего сценария добавьте атрибут src элемента script с номером версии для противодействия кешированию, например: <script src="myapp.js?v=2"></script>

Иногда воспринимаемая производительность лучше, чем реальная производительность, т.е. загрузка и рендеринг HTML важнее инициализации приложения. это может быть сделано путем асинхронной загрузки файлов JavaScript (путем вставки элементов сценария с JavaScript, как это делает Google, или с помощью загрузчиков сценариев, которые делают это для вас). но это приводит к новым проблемам, таким как порядок выполнения загруженных файлов или взаимодействие со страницей до полной загрузки и анализа файлов сценария.

В конце концов, это сильно зависит от архитектуры вашего онлайн-приложения или сайта и от того, каково или должно быть взаимодействие с ним, хотите уточнить, приведя несколько примеров?

PM5544.

1 голос
/ 13 ноября 2011

Любое значительное количество кода javascript лучше в общем внешнем файле javascript, поскольку он может более эффективно кэшироваться между всеми вашими страницами.

Несколько строк кода, встроенных в страницу перед закрывающим тегом bodyВызвать некоторый код инициализации во внешнем javascript-файле совершенно нормально и ничего не замедляет, если это лучший способ вызвать инициализацию.

0 голосов
/ 22 ноября 2011

Да, вы можете минимизировать JavaScript и CSS в отдельные файлы, используя такие инструменты, как YUI Compressor .Но размещение всех ваших активов в отдельных файлах может быть проблематичным: если файлы большие, браузер может использовать только один поток TCP для их загрузки, в отличие от нескольких одновременных запросов.Подробнее об этом здесь: Загрузка ресурсов JavaScript в увлекательной игровой форме

Что касается , где для добавления тегов <script> в HTML, ответ внизустраницы перед закрывающим тегом </body>.Посетите сайт Google Best Performance Practices .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...