Потоковая jquery (JS файлы) из CDN (Google)

Это случай, когда вы не делаете домашнее задание.:-)

Помимо преимуществ динамической загрузки, имеет ли смысл включать библиотеку JavaScript (jQuery в моем случае) с сервера Google, когда я могу загрузить ее с моего сервера как один файл, состоящий из ZIP файла jQuery 19kb + дополнительный Код JavaScript, который я написал, - все сжатые с помощью JS-компрессора и обслуживаемые HTTP-дефлированные.

С сервером Google у меня есть 2 (параллельные) HTTP-поездки. Один, чтобы получить файл jquery, а другой - получить код JavaScript на сайте. Один 19kb и другой говорят 20-25kb. В нормальных условиях это будет одна загрузка 30-35 килобайт с моего сайта.

Ответы

Ответ 1

Учтите, что jQuery script, загруженный с CD-диска Google, вполне может быть кэширован в браузере посетителей, поскольку он имеет согласованные заголовки и кеш-контроль независимо от того, откуда он загружается. Следовательно, в среднем большинству пользователей приходится загружать только скрипты javascript для конкретного сайта. Кроме того, CDN обычно имеет более быстрое время отклика, чем отдельные серверы, поскольку они отвечают от ближайшего к вашему серверу сервера.

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

Ответ 2

Вы уверены, что скрипты будут загружаться параллельно? Этот пример из Cuzillion, кажется, говорит, что только IE8 может это сделать.

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

Ответ 4

Это настоящий вопрос? Просто убедитесь, что ваш Cache-Control в ваших HTTP-заголовках настроен правильно, и клиент конечного пользователя только потянет его один раз. Это абсолютно тривиальное количество данных.

Ответ 5

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

Есть несколько преимуществ, которые я вижу в использовании CDN по сравнению с одним жирным архивом JavaScript:

  • Уменьшение времени ожидания для извлечения нерасщепленных ресурсов, поскольку эти ресурсы обслуживаются с крайних позиций
  • Для сторонних скриптов пользовательский браузер, вероятно, уже имеет кеширование и не будет загружать их снова для вашего сайта.
  • Работа с ограничениями браузера для каждого узла для параллельных запросов, путем распределения ваших активов по нескольким именам хостов (конечно, это также можно сделать с помощью собственных серверов с использованием простых поддоменных трюков).
  • Уменьшение общей нагрузки на ваших первичных серверах, особенно. важно во время пиковых периодов использования или нападений YC/Slashdot.

Когда нужно следить за временем загрузки для ресурсов HTML-страницы:

  • Когда у вас есть значительное число посетителей, впервые посещающих (из поисковых систем и/или социальных сетей). Исследования показывают, что в наши дни люди не очень терпеливы, поэтому вам действительно нужно уйти с пути, чтобы произвести хорошее первое впечатление. (См. Также статьи Якоба Нильсена на Отказ страницы, Ответы на двигатели и Время отклика.)
  • Для посетителей, использующих мобильные устройства. Мобильные сети передачи данных часто медленны и/или перегружены.
  • Для магазинов, практикующих непрерывную доставку и вызывающих частые оттоки активов (чаще всего для новых сайтов и приложений).

P.S. - Аарон Хопкинс имеет одну из лучших рецензий на оптимизацию времени загрузки страницы Я видел. Немного устарела, но все же весьма актуальна.

P.S.S. - Возможно, вы захотите взглянуть на Zepto, легкую (24K против 100K), совместимую с api альтернативу jQuery.