Преимущества и недостатки хостинга jQuery локально

В настоящее время мы вытаскиваем библиотеки jQuery и jQueryUI (и jQueryUI CSS) из CDN Google. Мне это нравится, потому что я могу назвать google.load("jquery", "1");
 и будет использоваться последний jQuery 1.x.x.

Теперь я должен вытаскивать библиотеки локально из-за безопасности.

Я рад вытащить их на месте, но мне интересно, какие из других преимуществ и ошибок нужно соблюдать?

Ответ 1

Основным преимуществом их наличия в CDN является то, что файлы можно загружать параллельно с файлами, загруженными с вашего собственного веб-сайта. Это уменьшает задержку на каждой странице. Итак, с другой стороны, это ловушка локального хостинга - увеличенная задержка. Основная причина этого заключается в том, что браузеры ограничены по количеству подключений, которые они могут одновременно устанавливать к одному и тому же веб-домену. В IE6 по умолчанию было установлено 2 одновременных подключения к одному домену, которые использовались всеми открытыми окнами IE !! В IE8+ он улучшен, по умолчанию 6, что соответствует FF/Chrome, но, тем не менее, если у вас много изображений и вы не используете спрайты, вы будете испытывать большую задержку.

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

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

Убедитесь, что вы также прочитали другой ответ на этот вопрос @Xaver. Это очень хороший трюк

Ответ 2

Я всегда использую CDN (Сеть доставки контента) от Google. Но на всякий случай это офлайн:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>!window.jQuery && document.write('<script src="jquery-1.4.2.min.js"><\/script>')</script>

Захватите Google CDN jQuery и откройте его, если необходимо

Редактировать: если вам не нужна поддержка IE6 и ваш сайт частично использует https, вы также можете удалить http:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>

Ответ 3

Другие использовали преимущества. Ловушки:

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

  • Любой сайт, на который вы тянете <script>, может полностью контролировать работу пользователя на вашем сайте. Если Google чувствует зло, они могут положить что-то в свою копию jQuery, чтобы записывать ваши нажатия клавиш, украсть личную информацию со страницы, на которой вы собираетесь привязать свою базу данных веб-отслеживания, сделать сообщение "Я люблю Google!". комментарии к каждой форме и т.д.

Google, вероятно, на самом деле не собирается этого делать, но это фактор, который не под вашим контролем, и, конечно же, что-то беспокоиться о других сервисах script -hosting. Были случаи, когда скрипты статистики были скомпрометированы с загрузчиками вредоносных программ.

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

Ответ 4

Google CDN:

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

Локально:

  • возможна разработка без подключения к сети.
  • все еще может получить некоторые преимущества в производительности за счет gzipping, в дополнение к минимизации

Ответ 5

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

Ответ 6

Преимущества: (специально для Google CDN)

  • Загрузка файлов параллельно. Другие ответы касаются этого.
  • Серверы Google, скорее всего, смогут быстрее доставлять контент
  • Общие библиотеки и фреймворки могут уже находиться на пользовательском компьютере, поскольку кеш HTTP для CDN является универсальным для всех сайтов.
  • Ваша пропускная способность не должна идти в направлении обслуживания больших файлов библиотеки.

Ответ 7

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

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

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

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

Ответ 8

Для меня это действительно зависит от того, какой контроль вы хотите иметь. Если вы похожи на меня и должны развиваться на локальном хосте при работе и путешествиях. Наличие локальных файлов jquery лучше, чем их размещение в google или где.

Ответ 9

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

  • Кросс гео пользователей. Если вы размещаете свой сайт в США, но у вас есть заметное количество европейских пользователей - CDN уменьшит время загрузки.
  • Большое количество пользователей и\или большой контент, поэтому одного главного сервера уже недостаточно. Можно думать о любой порно-видео на сайте (или Netflix, если вы хотите). Видеопоток - это большая нагрузка, при этом CDN будет намного меньше загружать основной сервер.

Но... дело в том, что эти пункты на самом деле не применимы к 90% веб-сайтов в мире. Бьюсь об заклад, вы не Facebook с миллионами онлайн-пользователей по всему миру, вы не Pornhub с сотнями ГБ, передаваемых каждую секунду.

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


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

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

Из моего недавнего опыта - я обновил TinyMCE на веб-сайте, который я поддерживаю, с 3.xx (от 2012) до 5.xx (от весны 2019). Этот сайт работал 7 (семь!) Лет без какого-либо обслуживания в этой части логики. В то время не было понятия "минимизации", а CDN были не такими распространенными, как сейчас. Но даже если они будут обычными - никогда не знаешь, что будет через 3-5-10 лет. Обычно вы хотите, чтобы ваш сайт оставался в живых, даже если вы не поддерживаете его, не так ли? Однако, если вы извлечете jQuery из CDN сегодня, то эта ссылка может (и, вероятно, разорвется) через 5 лет.

Решение с CDN и переходом на локальную версию, как предложил @Xaver, может быть хорошим компромиссом. Но... может быть, просто избавиться от ссылки CDN? ;)