Projekt

Allgemein

Profil

GX-Task #48657

Von Moritz Bunjes vor etwa 8 Jahren aktualisiert

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 wird 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. 

Zurück