Назад | Перейти на главную страницу

Хостинг против ссылок на сторонние скрипты

Я заметил, что многие веб-сайты ссылаются на внешние скрипты, расположенные на сторонних хостах. Один очень распространенный пример - jquery. В serverfault / stackoverflow / superuser jquery привязан к адресу googleapis.com.

Каковы преимущества этого по сравнению с размещением файла на вашем собственном сайте?

Некоторые из факторов могут быть следующими:

На собственном хосте

Сторонний хостинг

Но каковы основные причины выбора того или другого?

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

Скорость. Загружаем jQuery, jQuery UI из API библиотек Google AJAX, что увеличивает вероятность наличия кешированной версии этих библиотек в кеше любого посетителя. И инфраструктура / CDN Google лучше оптимизированы для обслуживания таких статических файлов, чем наш собственный веб-сервер.

В остальном экономия полосы пропускания вполне реальна - эти две библиотеки вместе довольно тяжелы.

Против: Я недостаточно доверяю никакому другому хостеру, чтобы разместить библиотеку на своем сайте. Для любой библиотеки, не указанной в Google, мы размещаем ее сами.

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

Я против связывания библиотек, скриптов и т. Д., Потому что считаю, что моя статистика трафика - это ценность, которую нужно хранить дома.

Более того, иметь размещенную и обновленную библиотеку довольно просто, cronjob может сделать это легко, эффективно и безопасно.

Если вы ссылаетесь на ресурс, чтобы сэкономить полосу пропускания (или попытаться улучшить время отклика пользователю в случае больших общих библиотек), имейте в виду две потенциальные серьезные проблемы:

  1. Внешний хост может выйти из строя в какой-то момент из-за аварии, DoS или планового обслуживания. Это может привести к поломке вашего сайта, поэтому убедитесь, что вы это учли (хотя бы путем предоставления пользователю полезного сообщения типа «Невозможно загрузить JQuery, некоторые функции могут быть неисправны. Обновите эту страницу. Если проблема не исчезнет, ​​сообщите чтобы ... "
  2. Когда появляется новая версия, она может иметь некоторую несовместимость с другим вашим кодом из-за неверного предположения (т.е. вы полагались на недокументированное или официально неопределенное поведение, которое изменилось между версиями, или новые функции приводят к конфликту пространства имен). Это может привести к поломке ваших страниц, пока вы не найдете и не решите проблему.

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