Почему я должен использовать CDN Google для jQuery?


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

Это только потому, что он загружает быстрее?

6 162

6 ответов:

Это потому, что:

  1. это увеличивает доступный параллелизм.
    (большинство браузеров будут загружать только 3 или 4 файла одновременно с любого данного сайта.)

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

  3. это гарантирует, что груз будет быть как вероятный.
    (Google может предварительно сжать файл в широком спектре форматов (например, GZIP или DEFLATE). Это делает время для загрузки очень маленьким, потому что оно супер сжато, и оно не сжимается на лету.)

  4. это уменьшает объем пропускной способности, используемой вашим сервером.
    (Google в основном предлагает бесплатную пропускную способность.)

  5. это гарантирует, что пользователь получит географически близко ответ.
    (у Google есть серверы по всему миру, что еще больше уменьшает задержку.)

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

есть несколько сценариев, когда вы могли бы не хотите использовать jQuery из CDN Google:

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

  2. когда вы хотите запустить приложение в автономном режиме. (Вполне связано с первой проблемой) если вам нужно работать в среде разработки (управляется, например, с беседке), возможно, Вам потребуется, чтобы ваше приложение работало без подключения к интернету (т. е.: в поезде :)

  3. когда вам нужно настроить его. Например, если вы используете грунт чтобы построить библиотеку в чтобы использовать только определенные модули или установить AMD name

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

и Microsoft hosts jQuery на их CDN. Это еще один выбор, сопоставимый с использованием размещенного jQuery от Google.

этой исследование by TJ VanToll убедил меня, что лучше объединить jQuery с другими скриптами, а не загружать его из CDN.

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

" в 2012 году среднее время RTT в мобильной сети в США и что 344ms относится не только к каждому HTTP-запросу – что средняя веб-страница теперь составляет 93 – но и каждый DNS уважать и TCP-соединение... В то время как средние RTTs улучшаются, есть только небольшая дополнительная выгода, так как существующие сети находятся в малый коэффициент теоретического предела диктуется физикой."

Он также цитирует этот пост от Стив Саудерс, который показывает, почему вы на самом деле вряд ли получите преимущество кэширования от использования CDN:

" из-за фрагментации в поставщиках CDN, версиях jQuery и использование протокола (http против https), шансы на получение кэша CDN хит шокирующе низок – и загрузка с внешнего домена имеет потенциал для выполнения не одного, а трех турах (поиск DNS, TCP-соединение и HTTP GET)."

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

преимущества, разделяемые здесь и в других местах, являются теоретическими. Просто наткнулся на углубленный анализ использования CDN и если он обеспечивает ожидаемые преимущества производительности. http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits

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

некоторые хорошие ответы здесь ", Почему вы должны...- а почему бы и нет..."

Я просто хочу добавить список альтернатив Google, если вы хотите загрузить jQuery из CDN.

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