00:00:00jQuery 4 наконец-то вышла! И нет, не волнуйтесь, вы не переместились в прошлое — это
00:00:04просто первое крупное обновление с 2016 года. Оно было в бете два года и
00:00:09выходит спустя 20 лет после первого появления jQuery.
00:00:12Вас может удивить тот факт, что jQuery всё еще важна. 88% всех сайтов
00:00:17всё еще используют её, во многом благодаря WordPress. Но, как видите, довольно
00:00:21известные бренды тоже на ней работают. Как говорится, работает — не трогай.
00:00:25Вот только это обновление может кое-что и сломать, так как разработчики решили внести
00:00:29все те кардинальные изменения, которые планировали годами: чистка устаревшего
00:00:32кода, удаление устаревших API и недокументированных функций, а также куча исправлений.
00:00:38Так что давайте сразу перейдем к делу, разберем ключевые изменения и посмотрим,
00:00:42какой путь проделала jQuery за 20 лет.
00:00:49Первое важное изменение — помянем Internet Explorer 10 и ниже. Поддержка
00:00:53этих версий прекращена. Но не паникуйте, если смотрите это через Internet Explorer
00:00:5811. Его поддержку уберут только в jQuery 5, так что у вас еще есть время нажать
00:01:02кнопку подписки. Кроме того, прекращена поддержка Edge Legacy, версий iOS
00:01:07старше трех последних, Firefox старше двух последних и стокового браузера Android.
00:01:12Как видите, мы реально молодеем. Собственно, следующие 3 изменения как раз об этом.
00:01:17Переходим ко второму пункту: исходный код jQuery переводят с AMD на ES-модули.
00:01:22Теперь она должна отлично работать с Vite, Webpack и современными сборщиками без костылей.
00:01:27Так почему бы не попробовать установить её в свой следующий проект — просто ради
00:01:31интереса или из чувства ностальгии?
00:01:33Кстати, о ностальгии: это обновление наглядно показывает, как далеко продвинулся
00:01:36JavaScript. В третьем пункте у нас удаление целой пачки функций jQuery, потому что
00:01:41чистый JS их наконец-то догнал. Это такие штуки, как isArray, parseJSON, trim, now,
00:01:46isNumeric, isFunction и многие другие. Теперь почти всё это можно сделать
00:01:51средствами самого JavaScript без лишних библиотек. Немного безумно осознавать,
00:01:56что когда-то нам вообще была нужна библиотека для таких вещей, но такова
00:02:00эволюция языков программирования.
00:02:01Развиваются не только языки, но и браузеры. Четвертое изменение, последнее крупное
00:02:06в плане модернизации — исправление порядка фокуса. Если вы не знали,
00:02:11браузеры годами не могли договориться о порядке событий focus и blur, поэтому у jQuery
00:02:15была своя логика для единообразия. Но теперь, раз уж старые браузеры уходят в прошлое,
00:02:20все поддерживаемые версии (кроме IE) работают одинаково, и jQuery больше
00:02:24не будет переопределять нативное поведение.
00:02:29Видно, что команда сфокусировалась на современности, ведь многое из того, что делало jQuery
00:02:34полезной раньше, со временем просто стало частью JavaScript. Но в библиотеке
00:02:38всё еще есть вещи, которые можно обновить — например, Deferred и колбэки,
00:02:42которые можно заменить на промисы (если вы не в IE 11), или анимации,
00:02:47которые теперь гораздо проще реализовать на CSS. Если вы хотите пойти еще дальше,
00:02:52они обновили slim-сборку, вырезав кучу этих лишних модулей.
00:02:55Теперь она весит всего 19.5 КБ. Мне кажется, это отличный подход:
00:03:01оставить старые функции в полном пакете для тех, кому они нужны,
00:03:04и предложить легкую версию без лишнего груза, который сегодня уже не актуален.
00:03:08С основными переменами всё, но было еще море исправлений багов и мелких правок,
00:03:12некоторые из которых тянулись годами. Старейший баг, что я нашел, датирован 2014-м —
00:03:17он касался авто-преобразования JSON в JSONP. И его наконец-то пофиксили.
00:03:22Есть даже проблема 2015 года (помню, сам натыкался), когда CSS-сеттер jQuery
00:03:28автоматически добавлял «px» к любому числу без указанных единиц. Это тоже
00:03:33исправлено. Там еще много всего, что вы можете изучить самостоятельно.
00:03:37Вплоть до исправления опечаток. Но на разбор всего этого уйдет вечность.
00:03:42Лично мне просто хотелось взглянуть на jQuery и оценить её путь, ведь это
00:03:46потрясающая часть истории веб-разработки. Хотя, возможно, называть её «историей»
00:03:51даже грубо, учитывая, как активно она используется и поддерживается. Конечно,
00:03:56я бы не стал сегодня выбирать jQuery вместо React или другого фреймворка, но это
00:04:01хорошее напоминание: веб строится слоями. И порой именно «скучные» и старые
00:04:06инструменты удерживают интернет на плаву, особенно важные легаси-сервисы,
00:04:10которые никто не решается обновлять. Мне любопытно, а вы когда-нибудь
00:04:15пользовались jQuery? Пишите в комментариях и не забывайте подписываться.
00:04:19До встречи в следующем видео!