De ce folosește WordPress jQuery versiunea 1.12.4?

31 oct. 2016, 11:38:32
Vizualizări: 20.8K
Voturi: 32

În timp ce verificam codul sursă, am observat că WordPress folosește jQuery v1.12.4. De ce folosește WordPress această versiune învechită de jQuery?

1
Comentarii

Răspunsul este foarte simplu: WP dorește să mențină compatibilitatea cu versiunile anterioare ale browserelor. WP are suficienți utilizatori care încă au nevoie de suport pentru IE8, astfel încât nu pot renunța la acesta încă.

Simba Simba
1 nov. 2016 11:57:24
Toate răspunsurile la întrebare 3
1
36

Există numeroase teme și pluginuri care folosesc jQuery așa cum este încărcat de nucleul WordPress. De fiecare dată când jQuery este actualizat, există riscul ca temele și pluginurile mai vechi să nu mai funcționeze (deoarece multe dintre ele sunt încă utilizate, dar nu mai sunt actualizate). De aceea vezi și jquery-migrate.js în codul sursă. Este un script care identifică funcțiile vechi utilizate de pluginuri/teme și se asigură că acestea funcționează în continuare în versiunile mai noi ale jQuery.

Trecerea la familia jQuery 3.x ar provoca defecțiuni la multe pluginuri/teme, deoarece nu este posibil să existe un script de migrare pentru toate elementele învechite. Acesta este motivul pentru care versiunile noi ale familiei 1.x erau încă dezvoltate în timp ce familiile 2.x și 3.x existau deja. Nu vor mai exista versiuni noi ale 1.x și 2.x după 1.12 și 2.2, cu excepția patch-urilor (de securitate). Deși jQuery 1.12 nu este învechit în prezent, va deveni în viitorul apropiat.

Prin urmare, WordPress se află într-o situație delicată. Dacă nu face upgrade la o versiune superioară a jQuery, nu poate ține pasul cu noile posibilități. Cu toate acestea, dacă face upgrade, site-urile vechi nu vor mai funcționa. Cel mai probabil rezultat este că WP va aștepta câțiva ani, astfel încât temele/pluginurile vechi să fie eliminate oricum, iar apoi va trece la familia 3.x.

Clarificare

Cele de mai sus ar putea sugera că migrarea de la versiunile 1.x la 3.x nu este posibilă. Acest lucru nu este adevărat. Este doar puțin mai complicat. Trucul este să faci mai întâi upgrade la 1.12, să depanezi rezultatul folosind scriptul de migrare mai vechi și apoi să adaugi scriptul de migrare 3.0, care funcționează cu 1.12. Instrucțiuni detaliate aici.

Actualizare de securitate

Dezvoltatorii vor observa că Google Dev Tools / Lighthouse raportează site-urile WordPress ca fiind vulnerabile din cauza prezenței acestei versiuni mai vechi a jQuery - sau așa pare. În realitate, tot ce face Lighthouse este să verifice dacă această bibliotecă are vulnerabilități menționate în Baza de date de vulnerabilități Snyk. Dacă verifici acest lucru în detaliu, vei descoperi că versiunea 1.12.4 este curată. Având în vedere utilizarea largă a versiunii 1.12.4, poți conta pe faptul că orice vulnerabilitate gravă va fi rezolvată rapid.

Actualizare privind migrarea

Trecerea la jQuery 3.x a fost realizată în WordPress 5.5 și finalizată în 5.7. Pentru cei care au nevoie în continuare de versiunea veche, există un plugin care permite revenirea la o versiune anterioară a jQuery.

31 oct. 2016 12:03:20
Comentarii

Doar pentru a adăuga un pic de informație suplimentară - atât jQuery 1.x cât și 2.x au fost actualizate în mod activ până în luna mai a acestui an, diferența dintre ele a fost pur și simplu că 1.x avea compatibilitate pentru IE8, iar 2.x a eliminat patch-urile și remedierile pentru acele browsere cu probleme. Versiunea 3.x este noua versiune și merge un pas mai departe prin schimbarea diferitelor interfețe pentru a fi compatibile cu interfețele "oficiale" HTML5 / JavaScript (adică, acolo unde făcea lucrurile în același mod, acestea au devenit standard după ce jQuery avea deja versiunile sale care făceau același lucru).

Rycochet Rycochet
1 nov. 2016 11:22:56
8
23
  • Nu este depășit
  • Trecerea la versiunea 2.x sau 3.x este prea devreme, oamenii încă folosesc IE8 care este suportat doar pe versiunea 1.x
31 oct. 2016 12:00:18
Comentarii

@LightnessRacesinOrbit De acord, dar din experiența mea, această întrebare este pe punctul în ceea ce privește nivelul mediu al unui dezvoltator WP.

MonkeyZeus MonkeyZeus
31 oct. 2016 20:49:45

Simplu spus: versiunea 1.12.4 nu este învechită :)

Tara Tara
1 nov. 2016 22:39:44

Actualizare pentru ianuarie 2018: Ideea că este învechită, în ciuda faptului că încă este inclusă implicit în WordPress, nu mai este "o prostie". Au fost identificate vulnerabilități XSS în versiunea 1.12.4, iar ramura 1.x nu mai primește actualizări. Remedierea recomandată este actualizarea la jQuery 3.x https://snyk.io/test/npm/jquery/1.12.4?severity=high&severity=medium&severity=low

squarecandy squarecandy
17 ian. 2018 19:28:41

De asemenea, când folosești Lighthouse, Google îți spune că versiunea 1.12.4 conține vulnerabilități de securitate cunoscute, așa că nu ar trebui să o folosești.

phpheini phpheini
26 iun. 2018 12:25:49

Suportul pentru IE8, pe care nici Microsoft nu-l mai oferă, este în acest moment iresponsabil. Menține oamenii să folosească un browser învechit cu probleme de securitate. Dacă cineva folosește IE8, ar trebui să înceteze.

Aslan French Aslan French
18 dec. 2018 03:50:08

Acest răspuns și unele dintre comentarii sunt depășite. JQuery 1.x și 2.x nu mai primesc patch-uri conform paginii principale jquery.com

Flimm Flimm
29 mai 2019 12:56:43

@DavidA.French Susțin propunerea. Dezvoltatorii trebuie să ÎNCETEZE să facă concesii pentru utilizatorii care refuză să își actualizeze browserele. A existat o perioadă când toți aspirăm la compatibilitate totală pe orice browser posibil, iar acele obiceiuri proaste încă persistă. Poate când internetul nu va mai funcționa pentru ei, acei oameni își vor actualiza la un browser modern. În acest moment, dacă nu folosești cea mai recentă versiune a unuia dintre browserele majore (IE și AOL nu se pun deloc în calcul), internetul nu ar trebui să se adapteze pentru tine. Serios, IE8? Reprezinți mai puțin de 1% din web, [spus în stil AOL] "La revedere"

KFish KFish
29 aug. 2019 07:19:28

Cred că răspunsul ar trebui șters până acum. Poți folosi chiar și IE 11 pe Windows 7, așa că nu mai există niciun motiv să mai suporți IE 8.

Adrian Adrian
5 sept. 2019 09:20:27
Arată celelalte 3 comentarii
2

Pentru a fi și mai corect.

Ramura 1.x include suport pentru IE 6/7/8, în timp ce ramura 2.x nu mai include acest suport.

https://blog.jquery.com/2016/05/20/jquery-1-12-4-and-2-2-4-released/

2 nov. 2016 02:10:56
Comentarii

Acesta nu este un răspuns complet.

Flimm Flimm
29 mai 2019 12:57:02

Acesta este cel mai important motiv pentru a renunța la el.

KFish KFish
29 aug. 2019 07:20:36