Хотя это уже не так важно, как раньше, jQuery 3.5 только что был анонсирован, и он по-прежнему является стандартной библиотекой JavaScript.
В последнее время много обсуждается актуальность jQuery для современного программирования на JavaScript. Да, вы можете действовать в одиночку и использовать необработанный JavaScript, но jQuery по-прежнему остается мощным инструментом, и при минимальных затратах на использование небольшой библиотеки вы действительно можете делать больше с меньшими затратами.
Однако дела пошли дальше, и jQuery нужно не отставать. Последняя версия 3.5 теперь готова к использованию. Самым большим изменением является исправление безопасности для htmlPrefilter. Это в основном используется внутри компании, чтобы преобразовать строки в правильный HTML, то есть все закрывающие теги. К сожалению, он использовал регулярное выражение для выполнения этой работы, и недавно было доказано, что его можно использовать для создания XSS. Решением было просто удалить метод, заменив его функцией, которая ничего не делает. Это означает, что у вас могут возникнуть проблемы, если вы полагались на htmlPrefilter для исправления вашего HTML, но только если вы не настаивали на закрытии тегов.
Например, если вы использовали:
тогда htmlPrefilter преобразовал бы это в:
но теперь вы получите:
что не то, что вы намеревались. Если вы всегда используете закрывающие теги в режиме HTML, проблем нет.
Если вам действительно нужно старое поведение и вы можете мириться с риском XSS, вы можете восстановить его. Однако команда jQuery рекомендует dompurify для выполнения свойства job — это не часть jQuery, но отлично с ним работает.
Большое изменение, необходимое для соответствия улучшенным селекторам CSS, заключается в том, что все позиционные селекторы, например : first,: last и т. д. удаляются в jQuery 4. Причина в том, что они не являются собственными селекторами, а затраты на их реализацию высоки с точки зрения кода и времени. Почти все позиционные селекторы имеют альтернативные методы, которые выполняют ту же работу, но фильтруют результат запроса. Например, вы можете написать, используя позиционный селектор:
$ («div: первый»);
и запрос вернет первый div. В качестве альтернативы вы можете использовать метод:
$ («div»). первый ();
который сначала возвращает все div, а затем отфильтровывает только первый. Все в порядке, но нам не хватало методов для позиционных селекторов: even и: odd, но теперь в 3.5 они есть:
.четный()
а также
.странный()
Все, что вам нужно сделать, это не забыть преобразовать все позиционные селекторы в методы фильтрации перед обновлением до jQuery 4.
Есть и другие незначительные изменения, но я не могу не комментировать устаревание метода jQuery .trim, который должен быть заменен собственным методом .trim JavaScript. Судя по количеству встречающихся мне веб-сайтов, которые вообще не могут обрезать строковый ввод, я не думаю, что это вызовет проблемы у многих программистов.
Ян Эллиот является автором книг Just jQuery: The Core UI и Just jQuery: Events, Async & AJAX, которые являются частью библиотеки I Programmer Library, опубликованной I / O Press. Его другие названия JavaScript в том же издании: Just JavaScript: An Idiomatic Approach; Асинхронный JavaScript и растровая графика JavaScript с холстом.