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.