Почему WordPress использует устаревшую версию jQuery v1.12.4?

31 окт. 2016 г., 11:38:32
Просмотры: 20.8K
Голосов: 32

Проверяя исходный код, я заметил, что WordPress использует jQuery v1.12.4. Почему WordPress использует эту устаревшую версию jQuery?

1
Комментарии

Ответ очень прост: WordPress хочет сохранить обратную совместимость со старыми браузерами. У WP достаточно пользователей, которым ещё требуется поддержка IE8, поэтому они пока не могут от неё отказаться.

Simba Simba
1 нояб. 2016 г. 11:57:24
Все ответы на вопрос 3
1
36

Многие темы и плагины используют jQuery, загружаемый ядром WordPress. Каждый раз при обновлении jQuery существует риск, что старые темы и плагины перестанут работать (поскольку многие из них всё ещё используются, но больше не обновляются). Именно поэтому в исходном коде можно увидеть jquery-migrate.js. Это скрипт, который перехватывает устаревшие функции, используемые плагинами и темами, и обеспечивает их работоспособность в новых версиях jQuery.

Переход на семейство jQuery 3.x может привести к поломке многих плагинов и тем, потому что не существует миграционного скрипта для всех устаревших функций. Вот почему новые версии семейства 1.x продолжали разрабатываться, даже когда уже существовали версии 2.x и 3.x. После версий 1.12 и 2.2 новых релизов 1.x и 2.x не будет, за исключением исправлений (в том числе для безопасности). Хотя jQuery 1.12 пока не устарел, в ближайшем будущем это произойдёт.

Таким образом, WordPress оказывается в сложной ситуации. Если система не перейдёт на более новую версию jQuery, она не сможет поддерживать новые возможности. Однако, если обновление произойдёт, старые сайты перестанут работать. Наиболее вероятный сценарий — WordPress подождёт несколько лет, пока старые темы и плагины естественным образом выйдут из употребления, а затем совершит переход на семейство 3.x.

Уточнение

Вышесказанное может навести на мысль, что миграция с версий 1.x на 3.x невозможна. Это не так. Процесс просто немного сложнее. Хитрость в том, чтобы сначала обновиться до 1.12, протестировать результат с помощью старого миграционного скрипта, а затем добавить скрипт миграции 3.0, который работает с 1.12. Подробные инструкции доступны здесь.

Обновление безопасности

Разработчики могли заметить, что Google Dev Tools / Lighthouse помечает сайты на WordPress как уязвимые из-за использования старой версии jQuery — или так кажется. На самом деле, Lighthouse просто проверяет, есть ли у этой библиотеки уязвимости, упомянутые в Snyk Vulnerabilities Database. При детальной проверке окажется, что версия 1.12.4 не имеет уязвимостей. Учитывая широкое распространение 1.12.4, можно быть уверенным, что любые серьёзные проблемы с безопасностью будут быстро устранены.

Обновление миграции

Переход на jQuery 3.x был реализован в WordPress 5.5 и завершён в версии 5.7. Для тех, кому всё ещё нужна старая версия, существует плагин, позволяющий понизить версию jQuery.

31 окт. 2016 г. 12:03:20
Комментарии

Просто добавлю немного дополнительной информации - и jQuery 1.x, и 2.x активно обновлялись до мая этого года, разница между ними заключалась лишь в том, что 1.x поддерживал совместимость с IE8, а 2.x удалил патчи и исправления для этих проблемных браузеров. Версия 3.x - это новая версия, которая делает ещё один шаг вперёд, изменяя различные интерфейсы для совместимости с "официальными" интерфейсами HTML5/JavaScript (то есть там, где jQuery делала что-то по-своему, эти вещи стали стандартом уже после того, как в jQuery появились собственные реализации аналогичного функционала).

Rycochet Rycochet
1 нояб. 2016 г. 11:22:56
8
23
  • Он не устарел
  • Переход на версии 2.x или 3.x пока преждевременен, так как многие до сих пор используют IE8, который поддерживается только в версии 1.x
31 окт. 2016 г. 12:00:18
Комментарии

@LightnessRacesinOrbit Согласен, но по моему опыту этот вопрос очень точно отражает средний уровень квалификации WP-разработчика.

MonkeyZeus MonkeyZeus
31 окт. 2016 г. 20:49:45

Проще говоря: v1.12.4 не является устаревшей :)

Tara Tara
1 нояб. 2016 г. 22:39:44

Обновление на январь 2018: Идея о том, что эта версия устарела, несмотря на то что она по-прежнему включена в WordPress по умолчанию, больше не является "бессмыслицей". В версии 1.12.4 были обнаружены уязвимости XSS, и ветка 1.x больше не получает обновлений. Рекомендуемое решение - обновление до jQuery 3.x https://snyk.io/test/npm/jquery/1.12.4?severity=high&severity=medium&severity=low

squarecandy squarecandy
17 янв. 2018 г. 19:28:41

Также при использовании Lighthouse Google сообщает, что версия 1.12.4 содержит известные уязвимости безопасности, поэтому её не стоит использовать.

phpheini phpheini
26 июн. 2018 г. 12:25:49

Поддержка IE8, которую даже Microsoft больше не обеспечивает, на данный момент безответственна. Это заставляет людей использовать устаревший браузер с проблемами безопасности. Если кто-то использует IE8, ему нужно перестать это делать.

Aslan French Aslan French
18 дек. 2018 г. 03:50:08

Этот ответ и некоторые комментарии устарели. JQuery 1.x и 2.x больше не получают обновлений, согласно информации на главной странице jquery.com

Flimm Flimm
29 мая 2019 г. 12:56:43

@DavidA.French Я полностью поддерживаю это предложение. Разработчикам нужно ПРЕКРАТИТЬ подстраиваться под пользователей, которые отказываются обновляться. Было время, когда все стремились к полной совместимости со всеми возможными браузерами, и эти плохие привычки до сих пор сохраняются. Может быть, когда интернет перестанет работать для них, эти люди обновятся до современного браузера. На данный момент, если вы не используете последнюю версию одного из основных браузеров (IE и AOL вообще не в счет), интернет не должен под вас подстраиваться. Серьезно, IE8? Вы составляете меньше 1% интернета, [голосом из AOL] "До свидания"

KFish KFish
29 авг. 2019 г. 07:19:28

Думаю, этот ответ уже пора удалить. Вы даже можете использовать IE 11 на Windows 7, так что нет причин поддерживать IE 8.

Adrian Adrian
5 сент. 2019 г. 09:20:27
Показать остальные 3 комментариев
2

Чтобы быть еще более точным.

Ветка 1.x включает поддержку IE 6/7/8, а ветка 2.x — нет.

https://blog.jquery.com/2016/05/20/jquery-1-12-4-and-2-2-4-released/

2 нояб. 2016 г. 02:10:56
Комментарии

Это не полный ответ.

Flimm Flimm
29 мая 2019 г. 12:57:02

Это самая веская причина отказаться от этого.

KFish KFish
29 авг. 2019 г. 07:20:36