După aproape 10 ani de la publicarea versiunii 3.0 și la 20 de ani de la înființarea proiectului, a avut loc lansarea bibliotecii JavaScript jQuery 4.0, care, conform organizației W3Techs, este utilizată de 70.9% din cele 10 milioane de cele mai vizitate site-uri web. Codul jQuery este distribuit sub licența MIT.
Lansarea jQuery 4.0 conține modificări care afectează compatibilitatea înapoi, dar conform dezvoltatorilor, majoritatea utilizatorilor vor putea trece la noua versiune fără probleme, cu modificări minime în codul lor. Pentru a facilita migrarea, poate fi folosit un plugin special. Problemele de compatibilitate înapoi sunt legate de eliminarea codului învechit, de eliminarea unor parametri interni nedocumentați, de încetarea suportului pentru comportamente excesiv de complicate și de încheierea suportului pentru API-uri anterioare care au fost declarate învechite. Eliminarea API-urilor și a browserelor învechite a permis reducerea dimensiunii arhivei gzip a bibliotecii cu 3 KB (versiunea slim ocupă acum 19.5 KB, iar versiunea completă — 27.5 KB).
Printre modificări:
- Suportul pentru browserul IE 10 și versiunile mai vechi a fost încheiat (suportul pentru IE 11 este păstrat, dar va fi eliminat în jQuery 5.0), precum și pentru alte browsere învechite, precum Edge Legacy, Android Browser și Firefox până la versiunea 115.
- A fost integrat suportul pentru API Trusted Types, dezvoltat pentru a proteja împotriva manipulărilor DOM care duc la scripting intersite (DOM XSS), de exemplu, în cazul unei manipulări necorespunzătoare a datelor primite de la utilizator în blocurile eval() sau în inserțiile „.innerHTML”, ceea ce poate duce la execuția codului JavaScript în contextul unei pagini specifice. Codul HTML poate fi acum transmis metodelor jQuery sub formă de obiecte TrustedHTML.
- Codul jQuery a fost actualizat pentru a utiliza modulele JavaScript ESM (ECMAScript Module) și poate fi livrat și importat ca un modul.
- Funcțiile care au fost marcate anterior ca fiind învechite au fost eliminate: jQuery.isArray, jQuery.parseJSON, jQuery.trim, jQuery.type, jQuery.now, jQuery.isNumeric, jQuery.isFunction, jQuery.isWindow, jQuery.camelCase, jQuery.nodeName, jQuery.cssNumber, jQuery.cssProps și jQuery.fx.interval. În locul acestor funcții, se recomandă utilizarea funcțiilor standard JavaScript: Array.isArray(), JSON.parse(), String.prototype.trim() și Date.now().
- Metodele interne nedocumentate ale obiectului Array — push, sort și splice — au fost eliminate.
- Ordinea de procesare a evenimentelor de schimbare a focusului a fost adusă în conformitate cu specificația W3C — blur, focusout, focus și focusin.
- Dimensiunea variantei reduse (slim), care nu conține module ajax și effects, a fost redusă la 19.5k datorită întreruperii furnizării obiectelor Deferred (se recomandă utilizarea Promises standard) și a Callbacks.
Sursa: opennet.ro
