Почему так важно загружать JS-фреймворк из Google AJAX Libraries API?

Я помню, как где-то читал, что гораздо лучше загружать JS-фреймворк из Google AJAX Libraries API, чем использовать локально размещенный.

Это означает, что вместо:

<script src="jquery.js"></script>

Вы загружаете фреймворк из Google:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

Я думаю, что преимущество было в основном в кешировании, но я не уверен в этом.

Может ли кто-нибудь объяснить мне причину, по которой лучше загружать фреймворки из Google, а не размещать их локально?


person Andreas Grech    schedule 06.12.2009    source источник
comment
Некоторое время я спрашивал себя о том же. Посмотрим, что скажут такие ботаники.   -  person David Robles    schedule 06.12.2009
comment
Уже есть хороший вопрос по этому поводу на stackoverflow.com/questions/936399/   -  person Crescent Fresh    schedule 06.12.2009


Ответы (5)


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

Ознакомьтесь с эту статью, чтобы узнать о некоторых других преимуществах.

person jamesaharvey    schedule 06.12.2009
comment
+1 Если бы все брали jquery из гугла, он всегда был бы кеширован, на какой бы сайт вы ни пошли! - person Paul Creasey; 06.12.2009
comment
Не знаю, как вы, парни и девушки, но сейчас я собираюсь поменять все свои сайты. - person Charlie Brown; 06.12.2009

У Google есть свои плюсы и минусы для размещения ваших javascript-библиотек.

ЗА:

  • CDN Google намного лучше, чем ваш
  • множество данных, собранных Google о вашем сайте и его использовании
  • у пользователя могут быть кешированные библиотеки с другого веб-сайта

МИНУСЫ:

  • 1 дополнительный поиск DNS
  • множество данных, собранных Google о вашем сайте и его использовании
  • Google может быть отключен или заблокирован (однозначно, но может случиться, например, какая-то сумасшедшая корпоративная политика)
  • 1 новое соединение, которое пользовательский браузер должен установить
  • в Safari файл jquery не обслуживается в сжатом виде

По моему опыту, я получил отличные результаты в локальном хостинге, потому что я объединил Google JQuery lib с другим моим кодом javascript, сжал его и получил отличную степень сжатия в едином файле javascript. Таким образом, браузер использует уже открытое соединение для загрузки «крошечного» файла со всем содержимым.

person Trident Splash    schedule 06.12.2009
comment
Минусы 4 и 5 вообще не относятся к CDN. И вопрос о параллелизме не является проблемой: упорядоченная оценка сценария выполняется браузером независимо от того, использует ли CDN Google или размещает его самостоятельно. - person Crescent Fresh; 06.12.2009
comment
ок, вырезали параллелизм. Con 4 касается производительности пользователей, а Con 5 специфичен для CDN Google, вот в чем вопрос. - person Trident Splash; 07.12.2009
comment
Если вы не компилируете свой JS в один файл, одно новое соединение, которое должен установить пользовательский браузер, является проблемой независимо от того, откуда вы его отправляете. - person Justin Johnson; 07.12.2009
comment
Просто сравниваю локальное обслуживание JQuery с его внешним размещением. Мои предположения основаны на результатах, показанных в Yahoo YSlow и Google Page Speed. По моему опыту, обслуживание на местном уровне принесло мне больше баллов в этих двух профилирующих приложениях. - person Trident Splash; 07.12.2009

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

Кроме того, с точки зрения Google, это позволяет им получать больше данных о том, как люди используют Интернет и их API.

ETA: Кроме того, если Google обновит свои API, это означает, что вы всегда будете использовать последнюю версию. Это может быть хорошо, а может и не быть (исправление ошибок или обратная совместимость).

person me_and    schedule 06.12.2009
comment
Я думаю, что мысль о том, что Google узнал о том, как люди пользуются Интернетом, вполне обоснована. - person Vincent Ramdhanie; 06.12.2009
comment
Что касается обновления своих API-интерфейсов Google, то, если вы используете конкретную версию (как я опубликовал в своем сообщении), например 1.3.2, это не повлияет на вас, если вы сами не обновите ссылку вручную. - person Andreas Grech; 06.12.2009

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

Таким образом, если вы получите как можно больше услуг от Google, QoE (качество обслуживания) ваших клиентов улучшится.

  1. Клиенты заботятся об этом, потому что чем быстрее они получат свою веб-страницу, тем больше они смогут сделать.

  2. Google заботится об этом, потому что чем быстрее клиенты получают свою веб-страницу, тем больше они могут обслуживать в день и, следовательно, тем больше денег они зарабатывают (конечно, от рекламы).

person jldupont    schedule 06.12.2009

Почему только гугл? Microsoft также запустила CDN, и в эти дни я подключаюсь к MS CDN вместо Google для получения JQuery.

Если бы я перефразировал ваш вопрос так, чтобы он читался как «В чем преимущество ссылки из CDN?», Я бы ответил так.

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

Вот и все. Я не могу придумать другого преимущества. Никто. Нада. Ноль.

Фактически, я могу думать о недостатке, что у вас будет немного меньше контроля над своим контентом.

Не думайте, что большой корпус щедро тратит свои деньги, предоставляя вам бесплатную полосу пропускания. Контроль над вашим сайтом - их дело.

person Cyril Gupta    schedule 06.12.2009
comment
Спасибо за упоминание о новом CDN от Microsoft; не знал об этом. - person Andreas Grech; 06.12.2009
comment
@Cyril Gupta - Я думаю, что имел в виду Джастин Джонсон, можете ли вы указать какие-либо причины, почему ссылка на Microsoft лучше, чем на Google? - person Andreas Grech; 07.12.2009
comment
@Justin - Нет никакой особой причины, кроме того, что он существует точно так же, как и Google, и поскольку он существует, кто-то должен на него ссылаться. Неиспользованные вещи стремятся куда-то уйти. - person Cyril Gupta; 07.12.2009