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

25

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

Sandun
источник
1
Ответ очень прост: WP хочет поддерживать обратную совместимость со старыми браузерами. У WP достаточно пользователей, которым по-прежнему нужна поддержка IE8, но они пока не могут ее удалить.
Симба

Ответы:

32

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

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

Итак, WordPress в безвыходном положении. Если он не обновляется до более высокой версии jQuery, он не может идти в ногу с новыми возможностями. Однако, если он обновится, старые сайты сломаются. Наиболее вероятным результатом является то, что WP будет ждать пару лет, поэтому старые темы / плагины будут в любом случае исключены, а затем перейдут к 3.xсемейству .

осветление

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

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

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

cjbj
источник
4
Просто чтобы добавить немного дополнительной информации - и jQuery 1.x, и 2.x активно обновлялись до мая этого года, разница между ними заключалась просто в том, что 1.x была совместима с IE8, а 2.x удалила патчи и исправления для тех глючных браузеров. 3.x - это новая версия, которая делает еще один шаг вперед, изменяя различные интерфейсы, чтобы они были совместимы с «официальными» интерфейсами HTML5 / JavaScript (т. Е. Когда все делалось одинаково, все стало стандартным после того, как у jQuery были собственные версии делать то же самое)
Rycochet
23
  • Это не устарело
  • Переход на 2.x или 3.x слишком рано, люди все еще используют IE8, который поддерживается только в 1.x
Набиль Кадими
источник
2
@LightnessRacesinOrbit Согласен, но, по моему опыту, этот вопрос актуален в отношении среднего уровня разработчика WP.
MonkeyZeus
7
Обновление от января 2018 года. Идея о том, что она устарела, несмотря на то, что она по умолчанию включена в WordPress, больше не является «чепухой». Уязвимости XSS были определены с 1.12.4, и ветвь 1.x больше не получает обновления. Рекомендованным исправлением является обновление до jquery 3.x snyk.io/test/npm/jquery/…
squarecandy
2
Также при использовании Lighthouse Google сообщает вам, что версия 1.12.4 содержит известные уязвимости безопасности, поэтому вам не следует ее использовать.
phpheini
4
Поддержка IE8, которую Microsoft даже не делает, на данный момент безответственна. Это заставляет людей использовать устаревший браузер с проблемами безопасности. Если кто-то использует IE8, он должен остановиться.
Дэвид А. Френч
1
@ DavidA.French Я второй движение. Разработчики должны перестать размещать пользователей, которые отказываются от обновления. Было время, когда все стремились обеспечить полную совместимость для всех известных браузеров, и эти вредные привычки продолжают сохраняться. Возможно, когда сети перестанут работать на них, эти люди обновятся до современного браузера. На этом этапе, если вы не пользуетесь последней версией одного из основных браузеров (IE и AOL вообще не учитываются), Интернет не должен сгибаться для вас. Честно говоря IE8? Вы как менее 1% в сети, [говорит в AOL] "До свидания"
KFish