CnC: Cache&Compress für CMSimple_XH

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
Post Reply
frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by frase » Thu Jan 25, 2018 4:17 pm

cmb wrote:
Thu Jan 25, 2018 4:13 pm
Es ist allerdings möglich, ein CDN explizit zu konfigurieren ($plugin_cf['tinymce4']['CDN']) – das ist aber bei dir vermutlich nicht der Fall, oder?
No Sir. Dann hätte ich das nicht geschrieben.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by cmb » Thu Jan 25, 2018 5:17 pm

frase wrote:
Thu Jan 25, 2018 4:17 pm
cmb wrote:
Thu Jan 25, 2018 4:13 pm
Es ist allerdings möglich, ein CDN explizit zu konfigurieren ($plugin_cf['tinymce4']['CDN']) – das ist aber bei dir vermutlich nicht der Fall, oder?
No Sir. Dann hätte ich das nicht geschrieben.
Tja, dann weiß ich auch nicht. Vielleicht hat manu eine Idee?

Es ist allerdings auch denkbar, dass der CDN-Abruf gar nicht durch den TinyMCE erfolgt – dennoch könnte ein solcher u.U. den TinyMCE aufhalten.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by frase » Thu Jan 25, 2018 5:27 pm

cmb wrote:
Thu Jan 25, 2018 5:17 pm
Tja, dann weiß ich auch nicht.
Kein Problem.
Ist ja auch nur ein kleines Ärgernis, das ich nicht mal richtig nachweisen kann.
Ich werde mal schauen und - falls es nochmal auftritt - die Ursache genauer untersuchen.

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by frase » Fri Jan 26, 2018 7:56 am

Ha,
E I G E N T O R !

In fhs-adminmenu wird in der Datei jquery.mCustomScrollbar.min.js folgende Adresse aufgerufen:
cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js

Das verursacht (in seltenen Fällen) eine Unterbrechung :(
Warum der Tiny dann warten muss - weiß ich nicht.

Also Entwarnung für Manu und alle XHler.
Ich muss mir nun überlegen, ob ich das Ding mitgebe (von local) oder es so lasse.
;-)

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by cmb » Fri Jan 26, 2018 9:37 am

frase wrote:
Fri Jan 26, 2018 7:56 am
Warum der Tiny dann warten muss - weiß ich nicht.
Steht ein <script> Element ohne async oder defer Attribut im HTML, dann blockiert dieses die weitere Verarbeitung bis es geladen, geparst und ausgeführt wurde. Das kann man auch leicht nachstellen. Dazu einfach folgende PHP-Datei anlegen:

Code: Select all

<?php
sleep(10);
echo 'console.log("geladen");';
Und diese Datei per <script> Element einbinden. Ggf. noch eine weitere PHP-Datei ohne sleep() und einer anderen console.log()-Message danach einbinden.

Also, wenn möglich, am besten das async oder defer Attribut setzen (auf Browsersupport und ggf. Fallbackverhalten achten), oder wenigstens das <script> erst am Ende des <body> einbinden.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by frase » Fri Jan 26, 2018 9:59 am

cmb wrote:
Fri Jan 26, 2018 9:37 am
Steht ein <script> Element ohne async oder defer Attribut im HTML, dann blockiert dieses die weitere Verarbeitung bis es geladen, geparst und ausgeführt wurde.
Ja. Danke.
Das aufrufende Skript steht schon am Ende des <body>. (Js ruft ein JS auf)
Ich habe jetzt mal das defer-Attribut an den Aufruf angefügt.
Unterstützt werden alle modernen Browser inkl. IE10+.

Ich werde das Verhalten weiter beobachten.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by cmb » Fri Jan 26, 2018 11:33 am

frase wrote:
Fri Jan 26, 2018 9:59 am
Das aufrufende Skript steht schon am Ende des <body>. (Js ruft ein JS auf)
Es kann den TinyMCE dennoch blockieren, weil während des Ladeversuchs DOMContentLoaded (und erst recht nicht Load) nicht getriggert wird. Mit defer sollte das Problem gelöst sein.
Christoph M. Becker – Plugins for CMSimple_XH

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by cmb » Fri Jan 26, 2018 2:21 pm

cmb wrote:
Fri Jan 26, 2018 11:33 am
frase wrote:
Fri Jan 26, 2018 9:59 am
Das aufrufende Skript steht schon am Ende des <body>. (Js ruft ein JS auf)
Es kann den TinyMCE dennoch blockieren, weil während des Ladeversuchs DOMContentLoaded (und erst recht nicht Load) nicht getriggert wird. Mit defer sollte das Problem gelöst sein.
Alles Quatsch. Lesen sollte man! Wie du ja bereits schriebst, wird das mousewheel Script per JS geladen – dann blockt es allerdings normalerweise nicht. Das Blocken liegt hier wohl daran, dass du ein Inline-Script erzeugst, in welchem mCustomScrollbar initialisiert wird, und diese Initialisierung blockt, weil mCustomScrollbar wohl ohne mousewheel nicht kann, und daher auf die Datei wartet.

Ich weiß nun nicht genau, welche Änderungen du nun durchgeführt hast, aber wenn du nur dem <script> Element, welches mCustomScrollbars einbindet, ein defer Attribut zugewiesen hast, dann dürfte nicht korrekt funktionieren, weil es dann durchaus sein kann, dass mCustomScrollbars initialisiert wird, bevor dieses Script überhaupt verfügbar ist.

Was grundsätzlich also wohl gemacht werden sollte, ist die Initialsierung von mCustomScrollbars eben erst on "DOM-Ready" durchzuführen:

Code: Select all

<script>
$(function () {
$("#fhs_adminmenu_fixed").mCustomScrollbar({
	theme: "minimal' . $admMenuThemeScrl . '",
	scrollInertia: 200
});
$("#fhs_adminmenu_fixed").mCustomScrollbar("scrollTo", "#currentMenuItem");
$("#fhs_adminmenu_fixed").mCustomScrollbar("scrollTo", "+150");
});
</script>';
Bin aber nicht sicher, ob das schon genügt. Alternativ könntest du die jQuery4CMSimple_XH API include_jQueryPlugin() nutzen, um die Plugins in der benötigten Reihenfolge zu laden – zumindest in der jetzigen Implementierung blockt das aber erst recht, da alles im <head> ohne async/defer eingebunden wird.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by frase » Fri Jan 26, 2018 3:22 pm

Ohje,
lesen muss man können ... da hast du recht ;-)

In jquery.mCustomScrollbar.js (also in der unminifizierten Version) fand ich eben diesen Hinweis:
/*
The code below is fairly long, fully commented and should be normally used in development.
For production, use either the minified jquery.mCustomScrollbar.min.js script or
the production-ready jquery.mCustomScrollbar.concat.min.js which contains the plugin
and dependencies (minified).
*/
Also habe ich mir jquery.mCustomScrollbar.concat.min.js geholt und (statt der anderen Version) in der index.php eingebunden.
Jetzt wird also nicht mehr auf den CDN-Server zugegriffen - es kann also auch keine Verzögerung mehr entstehen.
Diese ganze Schreib-Orgie hier (die auch gar nicht in diesen Thread gehört) hat also etwas gebracht, das mich schon von Anfang an störte, nämlich:
Offline konnte man das Adminmenü nicht per Mouserad scrollen.
Fazit:
Unser prachtvoller Christoph liest auch Nebensätze gründlich und lässt nicht locker.
Irgendwie bin ich täglich begeisterter von euch hier ;-)

P.S.
Dein Initialisierungsscript habe ich auch übernommen - kann ja nicht schaden - oder :D

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: CnC: Cache&Compress für CMSimple_XH

Post by cmb » Sun Feb 04, 2018 10:14 pm

frase wrote:
Fri Jan 26, 2018 3:22 pm
Also habe ich mir jquery.mCustomScrollbar.concat.min.js geholt und (statt der anderen Version) in der index.php eingebunden.
Gut!
frase wrote:
Fri Jan 26, 2018 3:22 pm
Dein Initialisierungsscript habe ich auch übernommen - kann ja nicht schaden - oder :D
Ich denke nicht. (Wollte eigentlich noch viel mehr zu diesem Thema schreiben, aber die Zeit reicht mal wieder nicht, und es gehört sowieso nicht in diesen Thread.)
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply