Projekt

Allgemein

Profil

Aktionen

GX-Task #48657

geschlossen

JavaScripte im Honeygrid werden durch andere Einbindung gecached, was zu einer besseren Performance führt

Von Moritz Bunjes vor etwa 8 Jahren hinzugefügt. Vor etwa 8 Jahren aktualisiert.

Status:
Erledigt
Priorität:
Normal
Zugewiesen an:
Moritz Bunjes
Kategorie:
Change
% erledigt:

100%

Betroffene Versionen:
Unbestimmt

Beschreibung

Die JavaScripte vom Honeygrid werden ab GX 3.3.1 nicht mehr über die gm_javascript.js.php geladen, sondern direkt als .js-Datei, um die PHP-Interpretation zu sparen und das Browsercaching zu nutzen. Dazu wird die Datei templates/Honeygrid/assets/javascript/init.min.js von der Klasse ApplicationBottomExtenderComponent erzeugt. Die init.min.js beinhaltet die JSEngineConfiguration und alle JavaScripte, die vor den JS-Usermods eingebunden werden müssen:
JSEngine/build/vendor.min.js
templates/Honeygrid/assets/javascript/vendor.min.js
JSEngine/build/jse.min.js
templates/Honeygrid/assets/javascript/initialize_template.min.js
templates/Honeygrid/assets/javascript/template_helpers.min.js

Die init.min.js wird mit einem Busting-Paramter (bust=abc124) eingebunden. Nach Leeren des Modulcaches ändert sich der Parameter. Dies führt dazu, dass die Datei neu erzeugt und vom Browser neu angefragt wird.

Die gm_javascript.js.php wird nur noch eingebunden, wenn JavaScript-Usermods existieren. Andernfalls entfällt die Einbindung, was wieder Performancegewinn bedeutet.

Zum Schluss wird die JSEngine/build/require.min.js eingebunden. Auch hier gibt es das Cache-Busting.

Im Entwicklermodus (.dev-environment Datei existiert) werden alle JavaScripte einzeln eingebunden, um volles Debugging zu ermöglichen.

Im Template wurden keine Änderungen durchgeführt. Es wurden nur folgende Dateien angepasst:
gm_javascript.js.php
system/extender/ApplicationBottomExtenderComponent.inc.php

Neu ist ebenfalls, dass der Ordner templates/Honeygrid/assets/javascript beschreibbar sein muss.



Zugehörige Tickets

Beziehung mit GX-Entwicklung - GX-Task #48656: Die JavaScripte des Frontends werden unzureichend gecached, was zu Performance-Verlusten führtErledigtTorben Wark

Aktionen
Aktionen

Auch abrufbar als: Atom PDF