Guten Tag!
Ich hatte das Problem, dass bei einer Seite mit viel Traffic das Frontendmodul der Erweiterung "TwitterReader" die Ladezeit der Seite auf ca. 16s verzögert hat (da die Twitter-Api recht langsam reagiert hat). Da keine Zeit für eine Überarbeitung der Erweiterung (Richtung Caching) bestand, musste ein Workaround her:
TwitterReader per Ajax nachladen
Schritt 1:
In den Einstellungen fügen wir bei den erlaubten Tag "<script>" hinzu. Diese Einstellung erlaubt nun in jedem HTML-Editor-Feld, auch Javascript einzufügen. Das ist nicht gut, wenn ein großer Benutzerkreis auch Zugriff auf das Backend hat!
Schritt 2:
Wir installieren über den Erweiterungkatalog die Erweiterung "Ajax"
Schritt 3:
Falls es noch nicht besteht: Ein neues Frontendmodul für den TwitterReader (Modultyp: "Twitternachrichten anzeigen"). Hier können wir uns auch gleich die ID des Frontendmoduls merken.
Schritt 4:
Wir legen ein weiteres Frontendmodul an (Typ: Eigener HTML-Code) mit folgendem Inhalt:
Wir müssen "_id_" im Ajax-Aufruf ('/ajax.php?...') noch durch die gemerkte ID ersetzen!HTML-Code:<div id="twitter_teaser_box"> <div id="tr_wait" style="padding-left:119px;padding-top:40px" <img src="plugins/slimbox/css/loading.gif" alt="loading" /></div></div> </div> </div> <script type="text/javascript"> <!--//--><![CDATA[//><!-- window.addEvent('domready', function() { new Request.HTML({ 'evalScripts':false, 'update':$('twitter_teaser_box'), 'onSuccess': function() { // Ladeanzeige ausblenden $('tr_wait').setStyle('display','none'); // Hier könnte z.B. auch ein Tickerscript gestartet werden. } }).get('/ajax.php?action=fmd&id=_id_&g=1'); // Hier muss die ID des Frontendmoduls eingetragen werden. }); /*]]>*/--> </script>
Schritt 5:
Jetzt müssen wir unser Frontendmodul aus Schritt 4 noch in das Seitenlayout einbinden. Natürlich sollten wir auch noch das Styling und das HTML-Template an unsere Wunschoptik anpassen.
Wenn jetzt die Seite aufgerufen wird, erscheint sie ohne lästige Verzögerung - lediglich das Twitter-Frontendmodul läd unter Umständen später nach.
Viel Spaß damit!
Carsten
Lesezeichen