Загружать JS-файлы из Интернета или обслуживать их самостоятельно?

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

По сути, вопрос заключается в следующем: когда речь идет о загрузке файлов js, в каких ситуациях следует загружать их из Интернета, если они доступны, а не обслуживать их самостоятельно? В каком случае обычно учитывается минимальная задержка?

Например

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

против

<script src="js/jquery-1-11-3.min.js"></script>

2 ответа

Решение

Полный ответ: оба.

Загрузка его из Интернета принесет вам пользу несколькими способами:

1) Существует ограничение на количество максимально открытых HTTP-запросов, которые может иметь браузер. Тем не менее, это ограничение на домен. Таким образом, обращение к серверам Google не помешает вам загрузить ваши CSS/ изображения.

2) Очень вероятно, что у пользователя уже будет этот файл в кеше, поэтому он получит HTTP 304 not changed ответ, и не нужно загружать файл.

Теперь, с учетом сказанного, иногда сервер будет недоступен, или проблемы с сетью в противном случае не позволят вам загрузить этот файл. Когда это происходит, вам нужен обходной путь, который мы можем сделать так:

<script>
if (typeof jQuery == 'undefined') {
    document.write(unescape("%3Cscript src='/js/jquery-2.0.0.min.js' type='text/javascript'%3E%3C/script%3E"));
}
</script>

Поставьте этот тег ПОСЛЕ загрузки JQuery из CDN, если загрузка не удалась, jQuery будет неопределенным и продолжит загружать его из локального источника. Если загрузка из CDN сработала, то этот блок будет пропущен.

В том числе с собственного сервера плюсы:

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

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

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

противопоказано:

  • более высокий трафик веб-сервера

  • больше связей

  • более высокая нагрузка на процессор

Вы должны решить для себя, какой из них лучше для вас. Для небольших сайтов я бы пошел на локальный сохраненный файл.

Другие вопросы по тегам