Saya mengembangkan modul baru-baru ini yang membutuhkan file JS dan CSS tertentu untuk disuntikkan ke dalam <head>
setiap halaman. Awalnya, saya menggunakan:
$doc =& JFactory::getDocument();
$doc->addScript(JURI::base(true).'/modules/mod_x/js/mod_x.js');
Namun, saya perhatikan bahwa ketika caching diaktifkan, situs memuat versi cached dari /cache
dan versi non-cache /modules/mod_x/js/
, yang menyebabkan kesalahan JS.
Ketika saya mengubah ini menjadi:
JHtml::script(Juri::base().'modules/mod_x/js/mod_x.js');
Script dimuat hanya sekali, dari cache, menyelesaikan kesalahan ini.
Saya membaca dalam dokumen bahwa addScript
metode ini lebih 'rendah' daripada JHtml:script
metode, tetapi lebih dari mengatakan bahwa ...
Tentu saja, Anda juga perlu kode secara manual beberapa langkah [bahwa script JHtml: lakukan untuk Anda] yang akan dilakukan secara otomatis menggunakan [JHtml: metode script] di atas [jika Anda menggunakan addScript].
... tidak ada detail lebih lanjut yang diberikan.
Jadi apa bedanya? Saya berasumsi JHtml:script
akhirnya memanggil addScript
objek dokumen di beberapa titik, tetapi apakah langkah perantara lain diambil terlebih dahulu?