Это может быть очевидно для некоторых, но мне было интересно: почему я должен зависеть от сервера Google для размещения jQuery для моего сайта?
Это только потому, что он быстрее загружается?
Это может быть очевидно для некоторых, но мне было интересно: почему я должен зависеть от сервера Google для размещения jQuery для моего сайта?
Это только потому, что он быстрее загружается?
Это происходит потому, что:
Существует несколько сценариев, когда вы не хотите использовать jQuery из Google CDN:
Когда вы создаете интрасеть приложение, в котором веб-сервер размещенный в той же сети, что и клиентов. Если вы используете Google CDN jQuery, вы будете звонить Интернет, а не веб-сервер в локальной сети. Эта увеличивает пропускную способность для вашего и медленнее.
Если вы хотите запустить приложение офлайн. (Вполне связано с первой проблемой). Если вам нужно работать в среде разработки (например, с помощью Bower), вам может потребоваться быть в состоянии заставить ваше приложение работать без какого-либо подключения к Интернету (то есть: в поезде:)
Когда вам нужно настроить его. Например, если вы используете Grunt для создания библиотеки для использования только определенных модулей или установки название AMD
Когда вы показываете страницы через SSL которые требуют jQuery. Вы должны обслуживать JavaScript через SSL как так же как ваша страница, чтобы избежать безопасности проблемы и предупреждения.
Кроме того, Microsoft запускает jQuery на своем CDN. Это еще один вариант, сопоставимый с использованием jQuery, размещенного в Google.
Этот исследование от TJ VanToll убедил меня, что это лучше конкатенировать jQuery с другими скриптами, а не загружать его из CDN.
Причина заключается в латентности, связанной с получением jQuery на мобильных устройствах:
"В 2012 году среднее время RTT в мобильной сети в США составил 344 мс. И это 344ms применяется не только к каждому HTTP-запросу - который средняя веб-страница теперь составляет 93 из - но также и каждый DNS-поиск и TCP-соединение... В то время как средние RTT улучшаются, есть только небольшой дополнительный выигрыш, поскольку текущие сети находятся в пределах малый фактор теоретического предела, продиктованного физикой".
Он также цитирует этот пост от Steve Souders, который показывает, почему вы на самом деле вряд ли получите преимущество кеширования от использования 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.
Но, чтобы подвести итог, вы в основном улучшаете свою общую производительность веб-сайта/приложения.