Последняя версия jQuery на Google CDN

103

Я читал в официальном документе Google CDN, что это srcjQuery:

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

Однако меня раздражает необходимость менять srcссылку на jQuery при каждом обновлении версии.

Я обнаружил, что если я установил версию, 1то Google вернет последнюю версию jQuery.

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js
/*! jQuery v1.8.2 jquery.com | jquery.org/license */

Это правильно? Есть ли какой-либо официальный URL-адрес для ссылки на последнюю версию jQuery, размещенную в Google CDN?

Мартин Бортири
источник
проверьте, что этот пост старше. Итак, другой дубликат
Мартин Бортири
1
Это дубликат stackoverflow.com/questions/441412/… (задан 14 января 2009 г.)
Ник Пьерпойнт

Ответы:

182

ОБНОВЛЕНИЕ 7/3/2014: На данный jquery-latest.jsмомент больше не обновляется. Из блога jQuery :

Мы знаем, что http://code.jquery.com/jquery-latest.js злоупотребляют, поскольку статистика CDN показывает, что это самый популярный файл. Этого не было бы, если бы разработчики использовали его только для создания локальной копии.

Мы решили прекратить обновлять этот файл, а также его уменьшенную копию, навсегда сохранив оба файла в версии 1.11.1.

Команда Google CDN присоединилась к нам в этих усилиях по предотвращению непреднамеренного выхода из строя веб-сайта и больше не обновляет файл на http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js . Этот файл также останется заблокированным в версии 1.11.1.

Следующий, теперь спорный, ответ сохранен здесь по историческим причинам.


Не делай этого. Серьезно, не надо.

Связывание с основными версиями jQuery действительно работает, но это плохая идея - с каждым обновлением десятичной дроби добавляются и устаревают целые новые функции. Если вы обновляете Jquery автоматически без проверки коды ПОЛНОСТЬЮ , вы рискуете неожиданный сюрприз , если API для некоторых критического метода изменился.

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

Затем, когда выйдет новая версия jQuery, спросите себя: нужна ли мне эта новая версия в моем коде? Например, есть ли какая-то критическая совместимость браузера, которой раньше не было, или это ускорит мой код в большинстве браузеров?

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

Просто нет веских причин ВСЕГДА использовать последнюю версию jQuery. Старые версии все еще доступны на CDN, и если они работают для ваших целей, зачем их заменять?


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

Проблема в том, что кеширование работает только в том случае, если вы укажете полный номер версии . Если вы укажете частичный номер версии, кеширование в далеком будущем не произойдет, потому что в этом случае некоторые пользователи получат разные второстепенные версии jQuery с одного и того же URL-адреса. (Скажем, ссылка на 1.7 указывает на 1.7.1 в один день и на 1.7.2 на следующий день. Как браузер будет следить за тем, чтобы сегодня была установлена ​​последняя версия? Ответ: без кеширования.)

Фактически, вот разбивка нескольких опционов и их настройки срока действия ...

http://code.jquery.com/jquery-latest.min.js (без кеша)

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js (1 час)

http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js (1 час)

http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js (1 год)

Таким образом, связываясь с jQuery таким образом, вы фактически устраняете одну из основных причин для использования CDN.


http://code.jquery.com/jquery-latest.min.js также не всегда может дать вам ожидаемую версию. На момент написания этой статьи он ссылается на последнюю версию jQuery 1.x, хотя jQuery 2.x также был выпущен. Это связано с тем, что jQuery 1.x совместим со старыми браузерами, включая IE 6/7/8, а jQuery 2.x - нет . Если вам нужна последняя версия jQuery 2.x, то (на данный момент) вам нужно указать это явно.

Две версии имеют одинаковый API, поэтому нет никакой разницы в восприятии для совместимых браузеров. Однако jQuery 1.x загружается больше, чем 2.x.

Blazemonger
источник
Спасибо за вашу точку зрения, но в моем случае лучше использовать последнюю версию. впрочем, я частично согласен с вашим мнением, но некоторые новые версии также исправляют старые ошибки. Кроме того, у последней версии больше шансов оказаться в кеше, что является одним из преимуществ cdn.
Мартин Бортири,
2
Хороший пример этого - разработка любого jquery <1.4 с последующим обновлением версии 1.4. Были изменения в доступе к свойствам и в том, как запросы ajax обрабатывают данные JSON в обратном вызове.
scrappedcola
просто чтобы прояснить ... Я просил одну страницу, которая использует тривиальную часть jquery ... Я понимаю ваш хороший момент, но я просто хочу знать, предлагает ли Google URL-адрес для получения последней версии.
Мартин Бортири,
4
@scrappedcola - jQuery 1.9 также внес много критических изменений. За прошедшие годы я столкнулся с множеством ошибок из-за проблем с обратной совместимостью в jQuery. И я полностью согласен с советом Blazemonger. Ни при каких обстоятельствах вы не должны просто указывать на URL «последней версии jQuery». Вы окажетесь во власти команды jQuery, и новый выпуск jQuery может легко сломать ваш сайт. Это не только может случиться, но, вероятно, когда- нибудь произойдет.
Steve Wortham
приятно узнать, что кеширование основано на уровне детализации версии!
Тадас В.
8

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

Последняя версия 1.8.x:

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

Последняя версия 1.x:

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

Однако имейте в виду, что у этих ссылок время ожидания кеширования намного короче, чем с полным номером версии, поэтому ваши пользователи могут загружать их больше, чем вы хотели бы. См . Критический .0 в ссылках Google CDN на jQuery 1.x.0 для получения дополнительной информации.

Jrummell
источник
1
В качестве альтернативы вы можете получить последнюю версию с code.jquery.com/jquery.min.js, она обычно обновляется за несколько дней до других компакт-дисков
Кевин Б.
Хотя таким образом вы можете загрузить последнюю версию 1.8.x, вы не можете загрузить последнюю версию 1.9 или любой другой младший номер версии по аналогичным ссылкам. Кроме того, ссылка «последняя версия 1.x» в настоящее время указывает на 1.11.1, тогда как последняя на самом деле - 1.11.3.
Blazemonger
@Blazemonger Верно. Это изменилось после того, как я ответил на это. У вас есть отличное объяснение в вашем обновлении!
jrummell
8

Если вы хотите использовать jQuery CDN, отличную от библиотеки jQuery, размещенной в Google, вы можете подумать об использовании этого и обеспечить использование последней версии jQuery:

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
Абдул Муним
источник
Это подняло 1.9.1 вместо 2.0
Филипп Сенн
3
v2.x несовместима с v1.x. Любой сайт, указывающий на этот URL-адрес, на самом деле испортит сайты, если он был обновлен до версии 2
Абдул Муним
2

Чтобы использовать последнюю версию jquery, размещенную в Google

Люди:

  1. https://developers.google.com/speed/libraries/#jquery

  2. Получите фрагмент:

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

  1. Поместите это в свой код.
  2. Убедитесь, что это работает.

Боты:

  1. Подождите, пока это сделает человек.
Боб Штайн
источник