Ich habe kürzlich ein Modul entwickelt, bei dem bestimmte JS- und CSS-Dateien in <head>
jede Seite eingefügt werden müssen. Anfangs habe ich verwendet:
$doc =& JFactory::getDocument();
$doc->addScript(JURI::base(true).'/modules/mod_x/js/mod_x.js');
Ich habe jedoch festgestellt, dass die Site beim Aktivieren des Caching sowohl eine zwischengespeicherte /cache
als auch eine nicht zwischengespeicherte Version von geladen hat /modules/mod_x/js/
, was zu JS-Fehlern führte.
Als ich das geändert habe in:
JHtml::script(Juri::base().'modules/mod_x/js/mod_x.js');
Das Skript wurde nur einmal aus dem Cache geladen, um diese Fehler zu beheben.
Ich habe in den Dokumenten gelesen, dass die addScript
Methode "niedriger" als die JHtml:script
Methode war, aber darüber hinaus ...
Natürlich müssen Sie auch einige der Schritte [die JHtml: script für Sie ausführt] manuell codieren, die automatisch mit der obigen [JHtml: script-Methode] ausgeführt werden [wenn Sie addScript verwenden].
... es werden keine weiteren Details angegeben.
Was ist der Unterschied? Ich gehe davon aus, dass JHtml:script
irgendwann addScript
ein Dokumentobjekt aufgerufen wird, aber werden zuerst andere Zwischenschritte unternommen?