Объединение.JS файлы против CDN

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

также, мы порекомендованы, что связываем наше .js файлы, чтобы уменьшить количество запросов, которые выполняются на сервер при загрузке.

Итак, нам нужно сесть и принять решение между, если мы используем CDN или bundle .js файлы.

каковы плюсы и минусы? Какие сделать больше смысл?

4 ответов


почему вы не можете объединить их и поместите их в CDN? Вряд ли это должно быть решение одного или другого?

Если вы есть, чтобы выбрать один или другой, это зависит от того, сколько .js файлы, которые вы включаете. Для небольшого количества файлов я бы предлагаю что CDN будет быстрее, где-что касается большего количества файлов, пучок .js файлы наверняка будет быстрее. Где переключение будет, что-то для вас, чтобы экспериментировать.


мой ответ: и. Свяжите их и поместите их на CDN.

обратная сторона этого? Зависит. Как выглядит процесс сборки? Вы можете легко автоматизировать объединения и минификации? Вы используете Yahoo YUI или закрытие Google или что-то еще?

кроме того, если есть много GUI-зависимых jQuery, может быть некоторое трудоемкое трение из-за постоянно меняющихся элементов/эффектов/css.

тестирование тоже важно потому что из-за возможных причуд минификации.

итог: 5 файлов javascript безопасное в комплекте в 1 файл = = = 4 меньше запросов.

страница с простым старым Html и одной внешней ссылкой javascript === 2 запроса на ваш сервер. Тем не менее, страница с простым старым Html и одной внешней ссылкой javascript на CDN === 1 запрос на ваш сервер.

В настоящее время мы используем инструменты закрытия Google. The Закрытие Google Инспектор!--18--> помогает следующее:

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


есть несколько вещей, о которых вам нужно подумать...

сколько JS вам нужно загрузить в начале загрузки страницы, и сколько вы можете отложить до более позднего времени?

Если вы можете отложить загрузку JS (например, поместить его в нижней части страницы) или загрузить его асинхронно, как это делает Google Analytics, то вы минимизируете количество времени, которое загрузка JS тратит на блокировку потока пользовательского интерфейса.

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

затем посмотрите на перемещение в CDN и убедитесь, что CDN может обслуживать сжатый контент JS и позволяет устанавливать заголовки, чтобы он "кэшировался навсегда" (вам нужно будет обновить файлы, если вы кэшируете навсегда). CDN помогает уменьшить задержку, но также уменьшит размер, будучи cookieless

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

Энди


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