最近、特定のJSおよびCSSファイルを<head>各ページのに挿入する必要があるモジュールを開発しました。最初は、私は使用しました:
$doc =& JFactory::getDocument();
$doc->addScript(JURI::base(true).'/modules/mod_x/js/mod_x.js');
ただし、キャッシュを有効にすると、サイトがからキャッシュされたバージョン/cacheとキャッシュされていないバージョンの両方をロードし/modules/mod_x/js/、JSエラーが発生することに気付きました。
これを次のように変更した場合:
JHtml::script(Juri::base().'modules/mod_x/js/mod_x.js');
スクリプトは、これらのエラーを解決するために、キャッシュから1回だけロードされました。
私はドキュメントでaddScriptメソッドがメソッドよりも「低レベル」であったことを読みましたJHtml:scriptが、それを言うだけではありません...
もちろん、上記の[JHtml:scriptメソッド]を使用して自動的に実行されるいくつかの手順(JHtml:scriptが実行する)も手動でコーディングする必要があります([addScriptを使用する場合])。
...これ以上の詳細はありません。
違いは何ですか?JHtml:script最終的にはaddScriptある時点でドキュメントオブジェクトが呼び出されると思いますが、最初に他の中間手順が行われますか?