Warum verwendet WordPress veraltete jQuery v1.12.4?

25

Beim Überprüfen des Quellcodes habe ich festgestellt, dass WordPress jQuery v1.12.4 verwendet. Warum verwendet WordPress diese veraltete Version von jQuery?

Sandun
quelle
1
Die Antwort ist sehr einfach: WP möchte die Abwärtskompatibilität mit älteren Browsern aufrechterhalten. WP hat genügend Benutzer, die noch IE8-Unterstützung benötigen, sodass sie diese noch nicht löschen können.
Simba

Antworten:

32

Es gibt viele Themes und Plugins, die jQuery verwenden, wie es vom WP Core geladen wird. Jedes Mal, wenn jQuery aktualisiert wird, besteht die Gefahr, dass ältere Designs und Plugins nicht mehr funktionieren (da viele von ihnen noch verwendet, aber nicht mehr aktualisiert werden). Deshalb sehen Sie auch jquery-migrate.jsin Ihrem Quellcode. Es ist ein Skript, das alte Funktionen, die von Plugins / Themes verwendet werden, auffängt und sicherstellt, dass sie auch in neueren Versionen von jQuery funktionieren.

Ein Wechsel in die jQuery- 3.xFamilie würde dazu führen, dass viele Plugins / Themes nicht mehr funktionieren, da nicht für alle veralteten Elemente ein Migrationsskript erstellt werden kann . Aus diesem Grund 1.xwurden immer noch neue Versionen der Familie entwickelt, während die 2.xund 3.xbereits existierten. Nach und wird es keine neuen 1.xund 2.xVersionen geben , mit Ausnahme von (Sicherheits-) Patches. Obwohl jQuery noch nicht veraltet ist, wird es in naher Zukunft sein.1.122.21.12

Also, WordPress ist in einer Schwebe. Wenn es nicht auf eine höhere jQuery-Version aktualisiert wird, kann es nicht mit den neuen Möglichkeiten Schritt halten. Wenn jedoch ein Upgrade durchgeführt wird, brechen ältere Websites ab. Das wahrscheinlichste Ergebnis ist, dass WP ein paar Jahre warten wird, so dass ältere Themes / Plugins sowieso auslaufen und dann zur 3.xFamilie springen .

Klärung

Dies könnte darauf hindeuten, dass eine Migration von 1.xVersionen auf 3.xnicht möglich ist. Das ist nicht wahr. Es ist nur ein bisschen kompliziert. Der Trick besteht darin, zuerst auf zu aktualisieren 1.12, das Ergebnis mit dem älteren Migrationsskript zu debuggen und dann das 3.0Migrationsskript hinzuzufügen , mit dem dies funktioniert 1.12. Ausführliche Anleitung hier .

Sicherheitsupdate

Entwickler werden feststellen, dass Google Dev Tools / Lighthouse WordPress-Websites als anfällig für das Vorhandensein dieser älteren jQuery-Version meldet - so scheint es jedenfalls. Tatsächlich überprüft Lighthouse nur, ob diese Bibliothek Schwachstellen enthält, die in der Snyk-Schwachstellendatenbank aufgeführt sind . Wenn Sie dies im Detail überprüfen, werden Sie feststellen, dass Version 1.12.4 sauber ist. Angesichts der weit verbreiteten Verwendung von 1.12.4 können Sie sich darauf verlassen, dass jede ernsthafte Sicherheitsanfälligkeit schnell behoben wird.

cjbj
quelle
4
Nur um ein paar zusätzliche Informationen hinzuzufügen: Beide jQuery-Versionen 1.x und 2.x wurden bis Mai dieses Jahres aktiv aktualisiert. Der Unterschied bestand lediglich darin, dass 1.x mit IE8 kompatibel war und 2.x die Patches entfernte und Korrekturen für diese fehlerhaften Browser. 3.x ist die neue Version, und nimmt die Dinge einen Schritt weiter durch verschiedene Schnittstellen zu ändern kompatibel zu sein mit dem „offiziellen“ HTML5 / JavaScript - Schnittstellen (dh wo es Dinge tat das gleiche Art und Weise, die Dinge zum Standard geworden , nachdem jQuery hatte ihre eigene Versionen dasselbe tun).
Rycochet
23
  • Es ist nicht veraltet
  • Die Umstellung auf 2.x oder 3.x ist zu früh. Die Benutzer verwenden immer noch den IE8, der nur auf 1.x unterstützt wird
Nabil Kadimi
quelle
2
@LightnessRacesinOrbit Einverstanden, aber meiner Erfahrung nach ist diese Frage in Bezug auf das durchschnittliche Kaliber eines WP-Entwicklers genau richtig.
MonkeyZeus
7
Update für Januar 2018: Die Idee, dass es veraltet ist, obwohl es immer noch der Standard ist, der in WordPress enthalten ist, ist nicht länger "Unsinn". XSS-Schwachstellen wurden mit 1.12.4 identifiziert und der 1.x-Zweig erhält keine Updates mehr. Die empfohlene Lösung ist ein Upgrade auf jquery 3.x snyk.io/test/npm/jquery/…
squarecandy
2
Auch wenn Sie Lighthouse verwenden, weist Google Sie darauf hin, dass Version 1.12.4 bekannte Sicherheitslücken enthält, sodass Sie diese nicht verwenden sollten.
Phpheini
4
Die Unterstützung von IE8, die Microsoft nicht einmal tut, ist an dieser Stelle unverantwortlich. Es hält die Leute mit einem veralteten Browser mit Sicherheitsproblemen. Wenn jemand IE8 verwendet, muss er aufhören.
David A. French
1
@ DavidA.French Ich stimme der Bewegung zu. Entwickler müssen STOPPEN, wenn sie sich weigern, ein Update durchzuführen. Es gab eine Zeit, in der jeder danach strebte, eine vollständige Kompatibilität mit allen bekannten Browsern zu erreichen, und diese schlechten Gewohnheiten blieben bestehen. Wenn die Interwebs für sie nicht mehr funktionieren, aktualisieren diese Leute möglicherweise auf einen modernen Browser. An diesem Punkt sollte sich das Internet nicht für Sie verbiegen, wenn Sie nicht die neueste Version eines der wichtigsten Browser verwenden (IE & AOL zählen überhaupt nicht). Ehrlich IE8? Sie sind wie weniger als 1% des Webs, [in AOL gesprochen] "Auf Wiedersehen"
KFish