Javasrcipt Modul Cache

Fragen zur Installation von CONTENIDO 4.9? Probleme bei der Konfiguration? Hinweise oder Fragen zur Entwicklung des Systemes oder zur Sicherheit?
Antworten
Bernbacher
Beiträge: 63
Registriert: Fr 21. Jan 2011, 13:29
Kontaktdaten:

Javasrcipt Modul Cache

Beitrag von Bernbacher » Do 19. Jul 2018, 13:21

Hallo,
an welcher Stelle wird denn im Contenido das Script-Tag zur Javascript-Cache-Datei der Module vor dem abschließenden Body-Tag erstellt?
Würde das gerne manipulieren und anders (später) laden.
Hintergrund:
Die Pagespeed Insight Werte sind für Contenido sehr schlecht (21 mobile und 73 desktop) und würde gerne mein jQuery z.B. erst ganz am Ende laden (da jQuery sehr groß ist und das Rendern blockiert) und danach die Javascripte der Module (die auf jQuery basieren).
Oder gibts da noch eine andere Möglichkeit?

Oldperl
Beiträge: 4250
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

Re: Javasrcipt Modul Cache

Beitrag von Oldperl » Do 19. Jul 2018, 19:06

Servus,

was bitte ist mit "später laden" gemeint? Also noch später als direkt vor dem schließenden body-Tag?

Oft hilft auch die js und css Dateien zu minifizieren und den Browser-Cache entsprechend zu optimieren.

Gruß aus Franken

Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Javasrcipt Modul Cache

Beitrag von xmurrix » Do 19. Jul 2018, 20:14

Hallo Bernbacher,

wenn du im Layout an gewünschter Stelle den Platzhalter {JS} definierst, wird das CMS beim Generieren der Seite den Platzhalter mit dem script-Tag der JS-Cache-Datei ersetzen. Gibt es kein Platzhalter {JS} im Layout, wird der script-Tag vor dem schließenden body-Tag (</body>) hinzugefügt.

Wenn du im Layout eigene JS-Sourcen vor dem schließenden body-Tag eingebunden hast, wir der script-Tag auch nach denen hinzugefügt.

Das Ganze passiert in contenido/classes/code_generator/class.code.generator.standard.php.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Bernbacher
Beiträge: 63
Registriert: Fr 21. Jan 2011, 13:29
Kontaktdaten:

Re: Javasrcipt Modul Cache

Beitrag von Bernbacher » Fr 20. Jul 2018, 18:41

Danke Euch beiden erstmal für die schnelle Antwort!

@Oldperl: mit "später laden" meinte ich, dass ich meine Javascripte am Ende nach dem Seitenaufbau manuell laden will.

@xmurrix: das mit dem {JS} wusste ich noch nicht! Wo kann man so essentielle Sachen nachlesen oder wie kommt man dorthin es rauszufinden? Zumindest war ich nicht clever genug dazu in der contenido/classes/code_generator/class.code.generator.standard.php danach zu suchen :roll: , daher danke nochmal sehr für den Hinweis!

Ich lade meine Javascripte jetzt vor dem schließenden Body-Tag wie folgt:

Code: Alles auswählen

<script type="text/javascript">
	function downloadJSAtOnload(){
		[
			'js/jquery-3.3.1.min.js',
			'js/jquery-ui.min.js',
			'js/meineJS.js',
			'cache/layout.js'
		].forEach(function(src) {
			var script = document.createElement('script');
			script.src = src;
			script.async = false;
			document.head.appendChild(script);
		});
	}
	if (window.addEventListener) window.addEventListener("load", downloadJSAtOnload, false);
	else if (window.attachEvent) window.attachEvent("onload", downloadJSAtOnload);
	else window.onload = downloadJSAtOnload;
</script>
Damit wird erst die Seite geladen, angezeigt, dann erst jQuery und die weiteren Javascripte geladen (in der class.code.generator.standard.php habe ich dann natürlich die Ausgabe der Javascript-Modul-Cache-Datei unterdrückt).
Das befördert mich bei Pagespeed-Insight gleich um 40(!) Punkte hoch in den grünen Bereich und der Kunde ist zufrieden!
Vielen Dank nochmal für Eure Hinweise!

xmurrix
Beiträge: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

Re: Javasrcipt Modul Cache

Beitrag von xmurrix » So 22. Jul 2018, 19:08

Gern geschehen.
Bernbacher hat geschrieben:
Fr 20. Jul 2018, 18:41
...@xmurrix: das mit dem {JS} wusste ich noch nicht! Wo kann man so essentielle Sachen nachlesen oder wie kommt man dorthin es rauszufinden?...
Einige gute Hinweise zum CMS findest du unter https://docs.contenido.org/.

Die Sache mit den Platzhaltern steht dort z. B. auf folgender Seite:
https://docs.contenido.org/display/COND/Layouts

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.

Antworten