В настоящее время мы извлекаем библиотеки jQuery и jQueryUI (и jQueryUI CSS) из Google CDN. Мне это нравится, потому что я могу позвонить, google.load("jquery", "1");
и будет использоваться последняя версия jQuery 1.xx.
Теперь мне нужно вытащить библиотеки локально из соображений безопасности.
Я счастлив найти их на месте, но мне интересно, какие еще преимущества и недостатки следует остерегаться?
javascript
jquery
jquery-ui
cdn
ороло
источник
источник
Ответы:
Основное преимущество их размещения в сети CDN заключается в том, что файлы можно загружать параллельно с файлами, загруженными с вашего собственного веб-сайта. Это уменьшает задержку на каждой странице. Итак, оборотная сторона этого - ловушка локального хостинга - увеличенная задержка . Основная причина этого заключается в том, что браузеры ограничены в количестве одновременных подключений к одному и тому же веб-домену. В IE6 по умолчанию было установлено 2 одновременных подключения к одному и тому же домену - совместно используемое всеми открытыми окнами IE !!В IE8 + он улучшен, по умолчанию установлено значение 6, что соответствует FF / Chrome, но все же, если у вас много изображений и вы не используете спрайты, вы столкнетесь с большой задержкой.
Используя CDN, я бы всегда явно задавал версию библиотеки. а не получал последнюю. Это снижает риск выхода новых версий из строя вашего кода. С jQuery маловероятно, но возможно.
Другое главное преимущество использования CDN - снижение посещаемости вашего сайта . Если вы платите за ГБ или находитесь на виртуальном сервере с ограниченными ресурсами, вы можете обнаружить, что общая производительность сайта увеличивается, а затраты на хостинг снижаются, когда вы передаете часть своего контента в общедоступную CDN.
Убедитесь, что вы также прочитали другой ответ на этот вопрос от @Xaver. Это очень хороший трюк
источник
Я всегда использую 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>
Возьмите jQuery Google CDN и при необходимости вернитесь к локальному
Изменить : если вам не нужно поддерживать IE6, и ваш сайт частично использует https, вы также можете удалить http:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
источник
!window.jQuery...
)?<script>
теги обрабатываются асинхронно, верно?<script>
теги обрабатываются синхронно! Во второй строке уже должен быть загружен jQuery, но на всякий случай, если нет, мы вводим JS для его локальной загрузки.document.write
Никогда не будет выполнена , если JQuery уже существует.Остальные покрыли льготы. Подводные камни:
Если вы включаете контент только со своего собственного сервера, это один сервер, который должен быть запущен - и не блокироваться брандмауэрами и т. Д. - чтобы ваш сайт работал. Получите скрипт от третьего лица, и теперь вам нужно запустить и разблокировать два сервера, чтобы ваш сайт заработал.
Любой сайт, с которого вы открыли,
<script>
может полностью контролировать взаимодействие пользователей с вашим сайтом. Если бы Google чувствовал себя злом, они могли бы вставить что-то в свою копию jQuery для регистрации ваших нажатий клавиш, украсть личную информацию со страницы, на которой вы находитесь, чтобы привязать ее к своей базе данных веб-отслеживания, заставить вас написать «Я люблю Google!» комментарии к каждой форме и так далее.Google, вероятно, на самом деле не собирается этого делать, но это фактор, который находится вне вашего контроля, и, безусловно, о чем следует беспокоиться с другими службами хостинга сценариев. Ранее были случаи, когда сценарии статистики были скомпрометированы загрузчиками вредоносных программ.
Прежде чем включать какой-либо скрипт от третьей стороны - даже на одну страницу вашего сайта - вы должны на 100% доверять им все доступные пользователю функции, видимые на этом имени хоста (включая функции администратора с выходом в Интернет).
источник
Google CDN:
Локально:
источник
if a new version breaks your existing plugins or site, you'll know about it possibly too late
вы можете указать версию в ссылке CDN, чтобы этого избежать.Я предпочитаю использовать свою локальную версию, потому что не могу контролировать, что они будут предоставлять. Например, я не хочу, чтобы на моих пользователей влияла Google-аналитика или что-то подобное, потому что это юридическая проблема в моей стране.
источник
Преимущества: (Специально для CDN Google)
источник
Практически с любой точки зрения использование CDN от Google - это хорошо.
Производительность будет улучшена (хотя и довольно незначительно, если ваш сайт действительно не занят), и объем данных, которые ваши серверы должны передать, уменьшится (хотя jQuery не совсем такая большая вещь для загрузки) и т.
Единственная причина, по которой вы не захотите его использовать, - это то, что вы не доверяете Google. Используя его, вы фактически предоставляете Google дополнительное информационное окно в профиле трафика вашего сайта, включая информацию об URL-адресах, которые в противном случае вы не захотите публиковать (например, безопасные области вашего сайта).
Если вы параноик в отношении безопасности, этого может быть достаточно, чтобы убедить вас не использовать их (в конце концов, хостинг самостоятельно не замедлит ваш сайт до сканирования), но в целом большинство людей придерживаются прагматической точки зрения. что Google уже достаточно знает об их сайте, что добавление этого не имеет большого значения.
источник
Наверное, сейчас меня меньшинство, но я бы сказал, что вы не хотите использовать 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? ;)
источник
Для меня это действительно зависит от того, какой контроль вы хотите иметь. Если вы похожи на меня и вам нужно развиваться на локальном хостинге при работе и путешествиях. Лучше иметь локальные файлы jquery, чем размещать их в Google или где-то еще.
источник