jQuery 4.0: Какво наистина променя първото голямо издание от десетилетие

Последна актуализация: 01/22/2026
Автор: C SourceTrail
  • jQuery 4.0 е първата голяма версия от около 10 години, пусната около 20-годишнината на библиотеката, и се фокусира върху модернизацията, а не върху лъскавите нови функции.
  • Актуализацията премахва поддръжката за IE10 и няколко по-стари браузъра, подравнява събитията на фокус със спецификациите на W3C и значително орязва стари, остарели API.
  • Изходният код на jQuery е преместен от AMD към ES модули с Rollup, подобрява съответствието на CSP с Trusted Types и допълнително свива стандартните и slim компилации.
  • Въпреки съвременния JavaScript и популярните рамки, jQuery остава широко използван, като мненията са разделени между тези, които го виждат като наследство, и тези, които все още ценят неговия сбит API.

Илюстрация на jQuery 4

След почти десетилетие без голяма актуализация, jQuery 4.0 отбелязва нова глава за една от най-влиятелните JavaScript библиотеки в мрежата. Насрочена да се появи точно след 20-годишнината от представянето на jQuery от Джон Резиг, тази версия не е толкова за лъскави нови трикове, колкото за премахване на наследения багаж и привеждане на проекта в съответствие с начина, по който всъщност създаваме за браузъри днес.

Вместо да се преоткрива, jQuery 4 се стреми да остане актуален, като модернизира ядрото си: премахване на поддръжката за остарели браузъри, приемане на ES модули, подобряване на сигурността чрез надеждни типове и почистване на отдавна остарели API. Резултатът е по-ефективна библиотека, която се вписва по-естествено в текущите инструменти, като същевременно се опитва да не „разруши мрежата“ за огромния брой сайтове, които разчитат на нея.

Голямо издание, на което се подготвяше десетилетие

Скокът към 4.0 е първото голямо увеличение на версията след серията jQuery 3, пристигайки след дълъг цикъл на разработка с бета версии и предварителни издания, започващи в началото на 2024 г. Екипът го описва като изданието, в което най-накрая са внедрили промени, които са искали от години, но не са могли да пуснат под формата на пач или малки актуализации.

Зад номера на версията се крие по-широк етап: jQuery съществува от около двадесет годиниКогато Джон Резиг за първи път представи библиотеката през 2006 г., работата с DOM в браузъри като IE, Firefox и Safari беше податлива на грешки и досадна. jQuery бързо се превърна в де факто начин за изглаждане на тези несъответствия, правейки селектори като $("#myspan") се усещат далеч по-достъпни от многословните местни алтернативи.

Този ранен успех оформи мрежата. Според дългогодишни технологични проучвания, jQuery все още присъства в голяма част от сайтовете които декларират JavaScript библиотека, дори когато по-нови рамки като React, Vue, Angular или Svelte са заели централно място в много проекти на зелено.

С толкова широкото приемане, поддържащите многократно са подчертавали, че Те не могат да рискуват небрежно да повредят съществуващи страници, особено защото много сайтове зареждат jQuery директно от публични CDN мрежи. Следователно jQuery 4 е на тънка граница: въвежда критични промени, но е проектиран така, че повечето проекти да могат да надграждат с ограничени модификации, подпомогнати от официално ръководство за надграждане и обновен плъгин jQuery Migrate.

Краят на пътя за IE10 и други наследени браузъри

Едно от най-видимите решения в това издание е, че Internet Explorer 10 и по-стари версии вече не се поддържатТози ход се очакваше от години, но jQuery 4 е версията, която най-накрая пресича границите, отразявайки колко малко се използват тези браузъри в съвременните анализи и насърчавайки екипите да... откриване на използването на браузъра.

Историята на обезценяването е поетапна: IE 11 все още работи с jQuery 4, но екипът вече е посочил, че ще бъде премахнат в jQuery 5. Това дава на организациите със строги ограничения за legacy версии известна свобода на действие, като същевременно ясно показва, че ерата на IE е към своя край.

Около IE има допълнителни съкращения: Edge Legacy (преди Chromium) изчезва от матрицата за поддръжка, заедно със стария браузър на Android и по-старите поколения на iOS и Firefox. Само последните няколко версии на тези браузъри, плюс Firefox ESR, остават в обхвата. Очаква се проектите, които наистина трябва да поддържат такива среди, да останат на линия 3.x.

Изрязването на този списък с браузъри не само опростява тестването в различни браузъри; също така премахва значителни части от кода за съвместимостТова допринася директно за по-малкия размер на файла на jQuery 4, особено след като специфичните за Internet Explorer клонове са премахнати.

Сигурност: Доверени типове и по-стриктно подравняване на CSP

Освен поддръжката на браузъри, jQuery 4 отговаря и на съвременни очаквания за сигурност при големи производствени внедряванияМного организации сега разчитат в голяма степен на Политиката за сигурност на съдържанието (CSP), за да намалят излагането на атаки чрез междусайтово скриптиране (XSS), а вътрешните механизми на jQuery се нуждаеха от актуализации, за да функционират безпроблемно при по-строги правила.

Промяната в заглавието е поддръжка за надеждни типовеКогато даден сайт прилага правила като например require-trusted-types-for 'script', само стойности, обвити в специфични надеждни типове (като TrustedHTML) може да бъде инжектиран в чувствителни DOM sink-ове. По-ранните версии на jQuery можеха неволно да нарушат тези ограничения в някои API пътища, създавайки напрежение за екипите, които се опитват да стеснят своите CSP.

С 4.0, HTML съдържание, обвито като TrustedHTML, вече може да се предава в методите за манипулиране на DOM на jQuery. без да се задействат нарушения на правилата. Библиотеката е одитирана, така че, където е възможно, да работи с надеждни типове, вместо да се бори с тях.

Друга свързана настройка засяга асинхронното зареждане на скриптове. jQuery вече предпочита създаването на стандартни <script> тагове за много заявки за асинхронни скриптове, вместо да се разчита на вградени конструкции. Тази промяна помага да се избегнат грешки на CSP в настройки, които забраняват вграден JavaScript, което е все по-често срещано в защитени внедрявания.

От AMD към ES модули и нов процес на изграждане

Под капака, jQuery 4 обхваща ES модули като основен модулен формат, оставяйки зад гърба си по-старата структура на AMD, която дълго време е захранвала веригата му за изграждане. Това привежда проекта в съответствие със стандартната модулна система, на която разчита съвременният JavaScript.

Вместо RequireJS, проектът вече използва Сборен пакет за пакетиране на изходния код на ES модулаЗа екипите, интегриращи jQuery в съвременни вериги от инструменти, това означава, че библиотеката се вписва по-естествено редом с други зависимости, базирани на ESM, и може да се използва директно чрез <script type="module"> където е уместно.

Тестовете също са адаптирани: Модулно-базираната версия се упражнява самостоятелно, така че проблеми, специфични за компилацията на ESM, да могат да бъдат открити рано. Това е особено важно за разработчици, които искат да импортират само части от jQuery в персонализирани пакети или които стандартизират кодовата си база около семантиката на ESM.

Дистрибуцията не се е променила драстично от оперативна гледна точка. Новата версия е достъпна чрез официалната jQuery CDN и чрез npm., като CDN мрежите на трети страни обикновено го „подхващат“ с течение на времето. За съществуващите CI тръбопроводи или процеси на внедряване това означава минимално триене при преминаване от предишна версия 3.x към новите компилации.

Дълъг списък с премахнати и остарели API-та

Докато по-ранните малки издания леко отблъскваха разработчиците от старите модели, jQuery 4 най-накрая премахва много API-та, които бяха маркирани като остарели в продължение на години.Целта е да се разчита на вградените JavaScript функции, които всеки поддържан браузър вече предоставя.

Сред премахванията са комунални услуги като jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, и jQuery.cssPropsТези функции първоначално са запълвали празнини в непоследователни имплементации на браузъри, но до голяма степен дублират това, което самият език сега предлага.

На практика, Очаква се кодовите бази да заменят тези помощни програми с техните еквиваленти.: Array.isArray() на мястото на jQuery.isArray, JSON.parse() където jQuery.parseJSON беше преди, String.prototype.trim() замяна jQuery.trim, и Date.now() за jQuery.now, между другото. Мигрирането в тази посока прави кода по-преносим и по-малко обвързан със специфичното за jQuery поведение.

От вътрешната страна, методи за масиви, като например push, sort, и splice са премахнати от прототипа на jQueryТова бяха на практика вътрешни помощни програми, които случайно бяха разкрити, и премахването им пояснява, че разработчиците трябва да третират jQuery колекциите по различен начин от обикновените масиви, дори ако понякога споделят повърхностни прилики.

Цялото това почистване, съчетано с премахването на код със специални случаи за по-стари версии на Internet Explorer, свива размера на библиотеката с повече от 3 килобайта в gzip форматЗа сайтове, които се грижат за всеки килобайт, това е незначителна икономия, особено когато се комбинира с други оптимизации.

Стандартна конструкция, тънка конструкция и намаляване на размера на файла

Размерът на файла винаги е бил част от разговора около jQuery и Версия 4 продължава тенденцията към по-стройно ядроМинимизираната стандартна компилация вече тежи малко под 80 KB, в сравнение с приблизително 88 KB за jQuery 3.7.1.

- slim build е насочен към среди, които не се нуждаят от поддръжка на Ajax или анимацияЧрез премахването на тези модули, тънкият вариант на jQuery 4 пада още повече, достигайки около 56 KB в един отчет и приблизително 19.5 KB gzip-нат в друг, в зависимост от това кои показатели и подробности за компресията разглеждате. Във всеки случай посоката е ясна: по-малко legacy, по-малки пакети.

Отвъд Ajax и анимацията, тънката конструкция също пропуска отложените и обратните извиквания в новата версия. Като се има предвид, че нативните Promises вече се поддържат добре във всички целеви браузъри с изключение на IE11, екипът беше уверен, че повечето асинхронни шаблони могат да разчитат директно на вградените езикови примитиви.

Разработчиците, които предпочитат пълната API повърхност, все още могат да изберат стандартната версия, но Проектите, които искат да минимизират полезните товари, имат повече възможности от предиС все по-строгите бюджети за ефективност, особено на мобилни устройства, възможността за избор на по-орязан вариант е практическо предимство.

Събитията за фокусиране и размазване вече следват спецификацията на W3C

Една от по-фините, но въздействащи промени в поведението в jQuery 4 включва събития за фокусиране и размазване върху елементи на потребителския интерфейсВ миналото браузърите не са били съгласни относно точния ред, в който са се задействали тези събития, което е довело до трудни за проследяване несъответствия.

За да се справя с това, По-ранните версии на jQuery отменяха подреждането на събитията в оригиналния код. да осигурят еднаква последователност, дори това да означава отклонение от развиващите се стандарти. Разработчиците изграждаха код върху тези предположения, често без да осъзнават, че поведението се различава от това, което браузърите постепенно стандартизираха.

Сега, когато спецификацията на W3C определя последователно подреждане за focus, focusin, focusout намлява blur, съвременните браузъри са се придържали предимно към този модел. В отговор jQuery 4 премахва старата си логика за пренаписване и позволява на местния ред на събитията да преобладава във всички поддържани браузъри, в съответствие с текущата спецификация.

Положителното е, че поведението става по-предсказуемо в цялата екосистемаНедостатъкът е, че кодът, който е разчитал на предишното подреждане на jQuery, сега може да се държи различно, евентуално да доведе до неочаквани гранични случаи във формуляри или сложни взаимодействия с потребителския интерфейс. Това е една от областите, където провеждането на тестове и използването на актуализирания плъгин jQuery Migrate по време на надстройки може да бъде особено полезно.

По-икономична библиотека, но не всички са съгласни с нейната роля

Както при всяка дълготрайна технология, Мненията за мястото на jQuery през 2026 г. са рязко разделениЗа някои разработчици заключението е просто: ако стартирате чисто ново уеб приложение, насочено към съвременни браузъри, изглежда няма особена причина изобщо да въвеждате jQuery.

Критиците често посочват проблеми с производителността и зависимосттаНативният JavaScript обикновено е по-бърз и избягва добавянето на десетки килобайти библиотечен код. По-старите версии на jQuery също са склонни да се задържат без актуализации в производствените сайтове, като се съобщава, че немалък дял от мрежата все още използва десетилетия стари версии 2.x.

От другата страна на дебата, много практикуващи твърдят, че jQuery остава ефикасен и прагматичен инструмент в ежедневната работаДокато рамки като React или Vue доминират в големи едностранични приложения, jQuery може да бъде по-лесно решение за постепенни подобрения, класически многостранични сайтове или бързи прототипи, където създаването на пълен конвейер на компоненти изглежда прекомерно.

Все още има разработчици, които описват jQuery като една от малкото JavaScript библиотеки, която е постоянно приятна за използване, особено за манипулиране на DOM и обработка на събития. Неговият кратък синтаксис, верижно управлявани методи и отдавна установени идиоми могат да намалят шаблонните елементи и да запазят малките скриптове четливи.

Този контраст на перспективите означава, че jQuery 4 вероятно ще бъде интерпретиран по различни начини: като грациозна модернизация на остарял инструмент от някои и като минимална поддръжка за една отминала епоха от другиРеалността на място е, че много производствени обекти продължават да разчитат на него, независимо дали е включен в новите шаблони на проекти.

Употреба в реалния свят: когато jQuery все още спестява време

Отвъд абстрактните аргументи, истории от ежедневното развитие показват как jQuery все още може да реши определени проблеми с много малко кодЕдин пример включва създаването на анимирани, превключващи се полета на формуляри, където някои полета се появяват само когато други са избрани или отметнати.

В този случай, разработчик първоначално се опита да създаде поведението с обикновен JavaScript, жонглиране с множество слушатели на събития, CSS преходи и проблеми с времето. След няколко опита, скриптът беше нараснал до повече от петдесет реда и все още страдаше от условия на състезание, при които анимациите се противопоставяха или се задействаха неправилно.

В крайна сметка разочарованието надделя и jQuery 4 беше добавен като зависимостИзползвайки помощните програми за обработка на събития и анимация, същият ефект беше възпроизведен само в няколко реда код. Компромисът беше ясен: допълнителна библиотека от ~80 KB в замяна на далеч по-проста имплементация и възможност за преминаване към други функции.

Сценарии като този подчертават защо Дългогодишното мото на библиотеката „пишете по-малко, правете повече“ все още е актуално за някои екипиДори в ерата на нативни API и сложни рамки, има моменти, в които малък скрипт, допълнен с jQuery, е по-бърз за изграждане и по-лесен за поддръжка от напълно персонализирано решение.

Разбира се, това не означава, че всеки проект има полза от включването на jQuery. Съвременните JavaScript и DOM API са по-последователни, отколкото бяха предиСтандартите , HTML5 и ECMAScript са намалили главоболията при работа с различни браузъри, а за много приложения с една страница, рамка или никаква библиотека може да е по-подходяща. Въпросът е не толкова в това, че jQuery е универсално необходим, колкото в това, че той остава полезна опция, когато проблемът и ограниченията съвпадат.

От съществена абстракция до роля на стандартна библиотека

За да разберем защо jQuery 4 се фокусира върху намаляването на размера, а не върху преоткриването си, е полезно да си спомним колко различно изглеждаше пейзажът, когато се появи библиотекатаПреди две десетилетия браузърите често се различаваха в интерпретацията си на поведението на JavaScript и DOM, което правеше дори основни взаимодействия крехки.

В тази среда, jQuery всъщност не беше по избор за много екипи. Той обедини Ajax извикванията, избора на DOM, обработката на събития и анимацията в един последователен API, позволявайки на разработчиците да се доверят, че кодът ще се държи по подобен начин в IE, Firefox, Safari и по-късно Chrome. Тази последователност беше критична във време, когато Microsoft често преследваше свои собствени идеи с Internet Explorer и очакваше другите да ги последват.

Оттогава насам организациите по стандартизация и доставчиците на браузъри се обединиха около HTML5, съвременни версии на ECMAScript и много по-добро подравняване между браузъритеДвигателят на Chrome и неговите производни доминират на пазара, а базовите възможности на браузърите са много по-високи, отколкото бяха, когато jQuery се разпространи за първи път сред разработчиците.

В резултат на това, това, което jQuery предлага днес, е по-малко за справяне с несъвместимости и повече за действаща като удобна, позната „стандартна библиотека“ върху JavaScriptСтилът му на верижно свързване на функции и кратките идиоми насърчават спокоен, почти функционален начин на структуриране на DOM-тежък код, въпреки че основният език не е изцяло функционален.

За разработчици, които са познавали само съвременни инструменти, Дълбочината на влияние на jQuery може лесно да се пренебрегнеМного от шаблоните, въведени или популяризирани от библиотеката, са били обратно вградени в езика и самите DOM API. В този смисъл, jQuery 4 не се опитва да си върне загубени територии, а по-скоро да поддържа библиотеката в съответствие с екосистемата, която е израснала около нея.

Взети заедно, промените в jQuery 4.0.0 – от премахването на IE10 до приемането на ES модули, надеждни типове и по-малък набор от API – отразяват проект, който съзнателно се развива, без да изоставя милионите сайтове, които все още зависят от негоВерсията не се опитва да се конкурира директно със съвременните рамки, но предоставя на екипите, които продължават да използват jQuery, версия, която се чувства като у дома си в днешната браузърна и инструментална среда, като същевременно оставя вратата отворена за постепенна миграция, където това е разумно.

ataque generalizado de la cadena de suministro de NPM
Свързана статия:
Широко разпространената атака срещу веригата за доставки на NPM разтърсва екосистемата на JavaScript
Подобни публикации: