Это может быть очевидным для некоторых, но мне было интересно: почему я должен зависеть от сервера Google для размещения jQuery для моего сайта?
Только потому, что так быстрее загружается?
Это может быть очевидным для некоторых, но мне было интересно: почему я должен зависеть от сервера Google для размещения jQuery для моего сайта?
Только потому, что так быстрее загружается?
Ответы:
Это потому что:
Существует несколько сценариев, когда вы можете не использовать jQuery из CDN Google:
При создании приложения для интрасети, где веб-сервер размещен в той же сети, что и клиенты. Если вы используете Google CDN jQuery, вы будете звонить в Интернет, а не на веб-сервер в локальной сети. Это увеличивает пропускную способность для вашей организации и медленнее.
Когда вы хотите запустить приложение в автономном режиме . (Весьма связано с первой проблемой). Если вам нужно работать в среде разработки (управляемой, например, с помощью Bower ), вам может потребоваться, чтобы ваше приложение работало без подключения к Интернету (например, в поезде :)
Когда вам нужно настроить его . Например, если вы используете Grunt для сборки библиотеки, чтобы использовать только определенные модули или задать имя AMD
Когда вы обслуживаете страницы через SSL, которые требуют jQuery. Вы должны обслуживать JavaScript поверх SSL, а также свою страницу, чтобы избежать проблем с безопасностью и предупреждений.
Кроме того, Microsoft размещает jQuery на своих CDN. Это еще один выбор, сравнимый с использованием размещенного в Google jQuery.
src="//ajax.googleapis.com/..."
работают.
Это исследование по TJ VanToll убедили меня в том , что это лучше сцепить JQuery с другими скриптами , а не загрузить его из CDN.
Причина заключается в задержке загрузки jQuery на мобильных устройствах:
«В 2012 году среднее время RTT в мобильной сети в Соединенных Штатах составляло 344 мс. И эти 344 мс применяются не только к каждому HTTP-запросу, который в настоящее время составляет в среднем 93 веб-страницы, но также к каждому поиску DNS и TCP-соединению ... В то время как средние значения RTT улучшаются, можно получить лишь небольшой дополнительный выигрыш, поскольку современные сети находятся в пределах небольшого фактора от теоретического предела, продиктованного физикой ".
Он также цитирует этот пост от Стива Соудерса, в котором показано, почему вы на самом деле вряд ли получите выгоду от кеширования при использовании CDN:
«Из-за фрагментации поставщиков CDN, версий jQuery и использования протокола (http против https) шансы получить попадание в кэш CDN шокирующе низки - и загрузка из внешнего домена может выполнить не один, а три обходные пути (поиск DNS, TCP-соединение и HTTP GET). "
Наибольшая выгода от кеширования. Теория заключается в том, что если посетитель посетил сайт, который загружал свои библиотеки JavaScript, скажем, jQuery, например, из CDN Google, то, когда он посещает ваш сайт, библиотека уже находится в кэше браузера этого пользователя и ее не нужно будет снова загружать. , Это звучит великолепно в теории.
Преимущества, которыми делятся здесь и в других местах, являются теоретическими. Просто наткнулся на углубленный анализ использования CDN и обеспечивает ли он ожидаемый выигрыш в производительности. http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits
Основная причина НЕ позволять Google размещать ваш jQuery, о котором многие не думают, заключается в том, что он не будет загружаться, если вы находитесь в Китае. Он блокируется вместе со многими другими сценариями, шрифтами и т. Д., Размещенными в Google CDN. Если вам нужно связаться с китайской аудиторией, лучше всего использовать запасной вариант, размещенный на вашем собственном сервере. Google APIS заблокирован в Китае
Некоторые хорошие ответы здесь на «Почему вы должны ...» и «Почему вы не должны ...»
Я просто хочу добавить список альтернатив в Google, если вы действительно хотите загрузить jQuery из CDN.
Подводя итог, вы в целом улучшаете общую производительность своего сайта / приложения.
Назначив CDN сервисному работнику, вы можете загружать CDN один раз за время жизни клиента, а не каждый раз, когда обновляете свой код.