Update auf jQuery 3.x (ab JTL-Shop 5.0)¶
Mit Shop-Version 5.0.0 wurde für das Javascript Framework jQuery ein größerer Versionssprung vollzogen.
Hinweis
Ab Version 5.x nutzt JTL-Shop jQuery 3.x.
Dieser Versionssprung ist inbesondere für Plugin- und Templateentwickler relevant, die die Funktionen von jQuery intensiv nutzen.
Um hier Fehler im Frontend zu vermeiden, bieten die Entwickler von jQuery in Form einer eigenen
Migrationslösung Unterstützung an.
Hierbei handelt es sich um einen API-Wrapper, der die Funktionalitäten von jQuery 3.x so modifiziert, dass sie
genutzt werden können, als würden sie von JQuery 1.12/2.x bereitgestellt. Allerdings werden für alle
nicht mit 3.x konformen Frameworkzugriffe entsprechende Warnungen in der Browser-JS-Konsole ausgegeben.
Sie finden diese Migrationslösung unter jQueryMigrate.
Dieser API-Wrapper ist dafür gedacht, Fehler in bestehenden Applikationen aufzuspüren und auszumerzen.
Für Legacy-Code, dessen Migration aus Kosten/Nutzen-Gründen nicht mehr auf Version 3.x angepasst wird,
bieten die Entwickler von jQuery zudem eine produktiv nutzbare, minifizierte Version
von jQueryMigrate an.
Diese Version gibt lediglich einen kurzen Hinweis zum Ladezeitpunkt aus, bzw. eine gesonderte Meldung, wenn sie in
der entsprechenden Applikation eine nicht unterstützte jQuery-Version vorfindet.
Bemerkung
jQuery-Migrate unterstützt nur die jQuery-Versionen 1.12.x und 2.2.x.
In JTL-Shop wird bis zu Version 4.06 jQuery 1.12 eingesetzt.
Weitere Informationen finden Sie im offiziellen Upgrade Guide von jQuery.
jQueryMigrate sollte nicht dauerhaft in Plugins und/oder Templates eingebaut werden, da es sich um eine Hilfestellung
zum Versionswechsel handelt.
Wir empfehlen eine temporäre Einbindung, um Konformität mit jQuery 3.x herzustellen.
Dabei wird jQueryMigrate nach dem eigentlichen jQuery-Framework geladen:
<script src="https://code.jquery.com/jquery-3.0.0.js"></script>
<script src="https://code.jquery.com/jquery-migrate-3.1.0.js"></script>
Sobald Sie alle Anpassungen vorgenommen haben, können Sie die jQueryMigrate-Zeile wieder entfernen.
jQueryMigrate Helper-Plugin¶
Noch einfacher lässt sich das Hinzufügen von jQueryMigrate in den Shop erledigen, wenn Sie das Helper-Plugin
„jtl_jquerymigrate_helper“ verwendeen.
Es ist hier zu beziehen: JTL gitlab repository.
Dieses Plugin bindet nach der Installation jQueryMigrate 3.1.1-pre in das Shop-Frontend ein und entfernt es mittels Plugin-Deinstallation ebenso einfach wieder aus dem Frontend.
In der Javascript-Konsole des Browsers werden alle nicht jQuery-3 konformen
API-Zugriffe angezeigt, angeführt durch den String JQMIGRATE
.

Für Shop-Version 4.x steht ein gesonderter Branch namens shop-v4
zur Verfügung:
branch shop-v4
Das Plugin „jtl_jquerymigrate_helper“ bringt zusätzlich die minifizierte Version von jQueryMigrate mit, die
prinzipiell für den produktiven Einsatz aktiv bleiben kann.
Allerdings wird hiervon dringend abgeraten.
Die einzige Ausnahme besteht, wie oben bereits erwähnt, in Applikationen, deren Überarbeitung ein ungünstiges
Kosten-Nutzen-Verhältnis aufweist. Bei diesen kann die minifizierte Version von jQueryMigrate dauerhaft produktiv aktiviert
bleiben.
Achtung
Für alle Varianten der Einbindung gilt: Nach erfolgter Überarbeitung der Applikation bitte JQueryMigrate wieder deaktivieren!