Почему я должен использовать CDN Google для jQuery? - PullRequest
167 голосов
/ 02 февраля 2010

Это может быть очевидным для некоторых, но мне было интересно: почему я должен зависеть от сервера Google для размещения jQuery для моего сайта?

Это только потому, что так быстрее загружается?

Ответы [ 7 ]

387 голосов
/ 02 февраля 2010

Это потому что:

  1. Это увеличивает доступный параллелизм.
    (Большинство браузеров загружают только 3 или 4 файла одновременно с любого данного сайта.)

  2. Повышается вероятность попадания в кэш.
    (Чем больше сайтов придерживаются этой практики, тем больше пользователей уже подготовили файл).

  3. Это гарантирует, что полезная нагрузка будет как можно меньше.
    (Google может предварительно сжать файл в широком спектре форматов (например, GZIP или DEFLATE). Это сокращает время - очень маленький для загрузки, потому что он супер сжат и не сжимается на лету.)

  4. Снижает пропускную способность, используемую вашим сервером.
    (Google в основном предлагает бесплатную пропускную способность.)

  5. Это гарантирует, что пользователь получит географически близкий ответ.
    (у Google есть серверы по всему миру, что еще больше снижает задержку.)

  6. (Необязательно) Они будут автоматически поддерживать ваши сценарии в актуальном состоянии.
    (Если вам нравится "летать за штанами", вы всегда можете использовать последний версия любого скрипта, который они предлагают. Они могут исправить дыры в безопасности, но обычно просто ломают ваши вещи.)
56 голосов
/ 02 февраля 2010

Существует несколько сценариев, когда вы можете не хотеть использовать jQuery из CDN Google:

  1. Когда вы строите интранет приложение, где веб-сервер размещены в той же сети, что и клиенты. Если вы используете CDN Google JQuery, вы будете звонить Интернет, а не веб-сервер в локальной сети. это увеличивает пропускную способность для вашего организация, и медленнее.

  2. Если вы хотите запустить приложение в автономном режиме . (Весьма связано с первой проблемой). Если вам нужно работать в среде разработки (управляемой, например, с помощью Bower ), вам может потребоваться, чтобы ваше приложение работало без подключения к Интернету (т. Е. поезд:)

  3. Когда вам нужно настроить . Например, если вы используете Grunt для построения библиотеки, чтобы использовать только определенные модули или для установки AMD имя

  4. Когда вы обслуживаете страницы по SSL которые требуют jQuery. Вы должны использовать JavaScript через SSL как а также вашу страницу, чтобы избежать безопасности проблемы и предупреждения.

Также Microsoft размещает jQuery на своих CDN. Это еще один выбор, сравнимый с использованием размещенного в Google jQuery.

28 голосов
/ 12 марта 2014

Это исследование TJ VanToll убедило меня, что лучше объединять jQuery с другими сценариями, а не загружать его из CDN.

Причина заключается в задержке загрузки jQuery на мобильных устройствах:

"В 2012 году среднее время RTT в мобильной сети в США было 344мс. И это 344ms относится не только к каждому HTTP-запросу - из которых средняя веб-страница сейчас составляет 93 - но также и каждый поиск DNS и TCP-соединение ... Хотя средние RTT улучшаются, есть только небольшие дополнительные выгоды, которые будут иметь место, так как существующие сети находятся в пределах небольшой фактор теоретического предела, продиктованного физикой. "

Он также цитирует этот пост от Стива Соудерса, который показывает, почему вы на самом деле вряд ли получите выгоду от кэширования от использования CDN:

"Из-за фрагментации в поставщиках CDN, версиях jQuery и использование протокола (http против https), шансы получить кэш CDN хит невероятно низкий - и загрузка с внешнего домена потенциал для выполнения не одного, а трех циклов (поиск DNS, TCP-соединение и HTTP GET). "

12 голосов
/ 21 марта 2012

Наибольшая выгода от кеширования.Теория заключается в том, что если посетитель посетил сайт, который загружал свои библиотеки JavaScript, скажем, jQuery, например, из Google CDN, то когда он посещает ваш сайт, библиотека уже находится в кэше браузера этого пользователя и не должна будет загружаться снова,Это звучит великолепно в теории.

Преимущества, которыми можно поделиться здесь и в других местах, являются теоретическими.Просто наткнулся на углубленный анализ использования CDN и дает ли он ожидаемый выигрыш в производительности.http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits

7 голосов
/ 31 июля 2016

Основная причина НЕ позволять Google размещать ваш jQuery, о котором многие не думают, заключается в том, что он не будет загружаться, если вы находитесь в Китае. Он блокируется вместе со многими другими сценариями, шрифтами и т. Д., Размещенными в Google CDN. Если вам нужно связаться с китайской аудиторией, лучше всего использовать запасной вариант, размещенный на вашем собственном сервере. Google APIS заблокирован в Китае

0 голосов
/ 16 ноября 2018

Назначьте CDN сервисному работнику, вы можете загружать CDN один раз за время жизни клиента, а не каждый раз, когда обновляете свой код.

0 голосов
/ 10 января 2018

Некоторые хорошие ответы здесь на «Почему вы должны ...» и «Почему вы не должны ...»

Я просто хочу добавить список альтернатив в Google, если вы действительно хотите загрузить jQuery из CDN.

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

...