Стоит ли ссылаться на облако API Google для библиотек JS? - PullRequest
32 голосов
/ 01 июня 2009

Мне нужны плюсы и минусы использования jQuery и других библиотек JS из облака Google API, а не загрузка файлов и их непосредственное развертывание.

Что скажете вы?


Мое решение

Вероятность того, что библиотека уже кэширована в системе пользователей, является для меня первостепенным фактором, поэтому я собираюсь с постоянной ссылкой на googleapis.com (например, ajax.googleapis.com/ajax/libs/…). Я согласен с другими здесь, что потеря доступа к облаку сервера Google является минимальной проблемой.

Ответы [ 9 ]

36 голосов
/ 02 июня 2009

Con

  • Пользователи в странах, на которые наложено эмбарго США (например, Иран), не получат ответ от Google
35 голосов
/ 01 июня 2009

Плюсы: возможно, он уже кешируется в системе пользователя. У Google большие трубы. Вы не платите за пропускную способность.

Минусы: теперь у вашего сайта есть два разных способа стать недоступными: перерыв в обслуживании на вашем сервере или один на сервере Google.

10 голосов
/ 01 июня 2009

Я смотрел на реальную производительность загрузчика Google для jQuery, в частности, и вот что я нашел:

  1. Серверы Google работают быстро и надежно.
  2. Они обслуживают из CDN, что означает, что если у вас много иностранных пользователей, они получат намного лучшее время загрузки.
  3. Они не обслуживают сжатые файлы. Так что они обслуживают намного больше байтов, чем нужно.

Если вы знаете, что делаете в Apache, Lighttpd или чем-то, с чем вы работаете с файлами, вы можете установить заголовки кэша точно так же, как Google, и значительно сократить объем данных, которые ваш конечный пользователь должен загружать, обслуживая его. с вашего собственного сервера. Вы также можете объединить свои сценарии на этом этапе и сократить ваши общие HTTP-запросы.

Итог: производительность Google хорошая, но не отличная. Если у вас много иностранных пользователей, то Google, вероятно, лучше, если ваши пользователи в основном базируются в США, и вам нужна максимальная производительность, изучите кеширование, Etags, gzipping и т. Д. И обслуживайте их самостоятельно.

2 голосов
/ 09 февраля 2010

Плюсы довольно очевидны и находятся в других ответах:

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

Но минусы могут быть очень хитрыми:

  • Если вы используете https, вы получите ошибку в большинстве браузеров, так как ваш сертификат недействителен для домена Google, только для вашего. Это серьезная проблема для https.
2 голосов
/ 02 июня 2009

Помимо замечаний других, я укажу еще два минуса:

  • Дополнительный внешний HTTP-запрос, поэтому при условии, что у вас есть собственный Javascript-файл (почти наверняка), это минимум два вместо одного минимума; и
  • ИМХО, поскольку загрузка jQuery выполняется асинхронно, вся ваша страница может быть загружена до загрузки библиотеки, поэтому эффекты, которые вы делаете для готового документа, иногда заметно видны пользователю при их применении. Я думаю, что это не очень хороший пользовательский опыт.
2 голосов
/ 01 июня 2009

Плюсы:

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

Минусы:

  • Если / когда вам нужно оптимизировать путем переупаковки подмножества этой сторонней библиотеки JS, вы работаете самостоятельно, и ваше веб-приложение может , тогда загрузка будет медленнее
1 голос
/ 20 ноября 2010

Con:

  • Если вы боитесь отравления DNS или боитесь, что какой-либо общедоступной беспроводной сети может не доверять, то не-SSL-версии могут вообще не обслуживаться Google, открывая установку с диска. вредоносных программ. (Но: для кэширования установлено значение для полного года , поэтому, даже если многие браузеры будут выдавать запрос If-Modified-Since для кэшированного содержимого при нажатии на кнопку обновления, это может быть теоретической проблемой, поскольку большинство пользователей уже имеют кэшировал ресурсы при использовании другой сети.)

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

1 голос
/ 03 июня 2009

Pro:

Ajaxlibs от Google предлагают очень детальный «контроль версий» для включенных библиотек. Вы можете принудительно установить определенную версию (например, JQuery 1.3.2) или автоматически запросить последнюю версию из определенной ветви (например, серия JQuery 1.3 -> в настоящее время предоставит 1.3.2, но, возможно, скоро 1.3.3).

У последних определенно есть свои преимущества: вы будете получать выгоду от небольших исправлений / улучшений производительности, не нарушая свои скрипты / плагины.

Поддержание такого мультибиблиотечного хранилища самостоятельно может стать довольно трудоемким.

1 голос
/ 01 июня 2009

Я думаю, что было бы здорово сделать это запустить A / B тесты и посмотреть, какова задержка при загрузке минимизированной версии jquery с серверов Google против вашего сервера. Надеюсь, что это даст перспективу. Скорее всего, сервер Google может быть быстрее, но с точки зрения ответственности за время простоя, ничто не сравнится с хостингом.

...