Подтвердить что ты не робот

Что быстрее для включения сценариев, с использованием CDN (Google) или их хранения локально в корне сайта?

Что быстрее для включения скриптов, используя CDN (Google) или сохраняя их локально в корне сайта?

4b9b3361

Ответ 1

Если вы имеете в виду основные библиотеки jQuery, используйте Google CD для интернет-сайта (в отличие от внутреннего).

CDN имеет следующие преимущества, с которыми вам трудно конкурировать:

  • Другие серверы
  • Полоса пропускания (вы не платите)
  • Геолокация (меньшее время отклика)
  • Избыточность
  • Оптимизированные настройки кэширования
  • Скорее всего, пользователь уже кэшировал файл
  • Параллельные загрузки, пользователь может одновременно захватывать другой контент с вашего сайта

Хотя вы можете настроить заголовки кеша так же, как они, вы, вероятно, не сможете быстрее обслуживать файл. При этом библиотека /CDN является лишь частью головоломки. Разные плагины и код, который у вас есть, также должны быть minified, объединены и через gzip.

Ответ 2

В зависимости от скорости вашего сервера. Однако CDN, скорее всего, быстрее, у вашего клиента может быть уже сохранен файл с другого сайта.

Он выгрузит большую часть полосы пропускания с вашего сайта, однако вы полагаетесь на стабильность сторонней стороны для поддержки файла. (Хотя я не вижу проблемы с Google в ближайшее время)

Ответ 3

Google CDN:-)
1) Оптимизирован с точки зрения кэша
2) Пользователь получает ресурс из более оптимального CDN node

Ответ 4

К сожалению, недавно проведенные исследования показали, что CDN Googles на самом деле затрудняет работу.

API AJAX Libraries API пытался использовать сетевые эффекты для повышения производительности всех участвующих веб-сайтов, предоставляя общий общий кэш. Однако недавние исследования показали, что слишком мало людей используют сеть для того, чтобы она достигла критической массы и фактически улучшила производительность сети. В настоящее время накладные расходы на использование сети означает использование API библиотек Google AJAX, что фактически снижает производительность. Вы должны разместить файл JavaScript локально. Это увеличит потребление полосы пропускания, но улучшит скорость загрузки страницы. Из отчета Zoompf.com.

См. здесь также Должны ли вы использовать CDN библиотеки JavaScript?

Ответ 5

Я бы сказал, что Google CDN по другим причинам заявил.

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

Скажем, например, у вас есть сайт forOrlandoFloridaPeopleOnly.com/. Если ваш сервер размещен в Орландо, Флорида и ближайший сервер доставки контента Google находятся в Майами, Флориде и Атланте, Джорджия (это правда), ваш сервер может [вероятно] быстрее, если у посетителя еще не была кешированная копия файла из Google CDN.

Помните, что если вы используете статический контент для своих посетителей, ваш сервер пытается распараллелить загрузки, используя поддомены или другие средства. И ради добра... не передавайте файлы cookie для статического контента.

Я не уверен, насколько надежным является этот источник: Центры обработки данных Google. Поэтому не обязательно рассчитывать на это.

Ответ 6

Его еще быстрее хранить в хранилище localStorage/web. Я создал небольшую библиотеку, чтобы сделать это, и результаты довольно убедительны.

  • Загрузка jQuery из CDN: Chrome 268ms, FireFox: 200 мс
  • Загрузка jQuery из localStorage: Chrome 47 мс, FireFox 14 мс

вы можете проверить код на https://github.com/webpgr/cached-webpgr.js, он крошечный, и вы читаете его и понимаете в течение нескольких минут.

Вот полный пример того, как его использовать.

Полная библиотека:

function _cacheScript(c,d,e){var a=new XMLHttpRequest;a.onreadystatechange=function(){4==a.readyState&&(200==a.status?localStorage.setItem(c,JSON.stringify({content:a.responseText,version:d})):console.warn("error loading "+e))};a.open("GET",e,!0);a.send()}function _loadScript(c,d,e,a){var b=document.createElement("script");b.readyState?b.onreadystatechange=function(){if("loaded"==b.readyState||"complete"==b.readyState)b.onreadystatechange=null,_cacheScript(d,e,c),a&&a()}:b.onload=function(){_cacheScript(d,e,c);a&&a()};b.setAttribute("src",c);document.getElementsByTagName("head")[0].appendChild(b)}function _injectScript(c,d,e,a){var b=document.createElement("script");b.type="text/javascript";c=JSON.parse(c);var f=document.createTextNode(c.content);b.appendChild(f);document.getElementsByTagName("head")[0].appendChild(b);c.version!=e&&localStorage.removeItem(d);a&&a()}function requireScript(c,d,e,a){var b=localStorage.getItem(c);null==b?_loadScript(e,c,d,a):_injectScript(b,c,d,a)};

Вызов библиотеки

requireScript('jquery', '1.11.2', 'http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js', function(){
    requireScript('examplejs', '0.0.3', 'example.js');
});

Ответ 7

Возможно, стоит отметить, что Visual Studio имеет проблемы с Intellisense для Google CDN. У Microsoft также есть CDN, который позволяет Intellisense правильно функционировать. Но да, используйте CDN.