Недавно я разработал модуль, который требовал внедрения определенных файлов 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');
Скрипт загружался только один раз, из кеша, исправляя эти ошибки.
Я прочитал в документах, что addScript
метод был более «низкоуровневым», чем JHtml:script
метод, но не говоря о том, что ...
Конечно, вам также нужно будет вручную написать некоторые шаги [которые JHtml: script выполняет для вас], которые будут выполнены автоматически с использованием [JHtml: script method] выше [если вы используете addScript].
... дальнейших подробностей не приводится.
Так в чем же разница? Я предполагаю , что в JHtml:script
конечном итоге вызывает addScript
на объект документа , в какой - то момент, но и другие промежуточные шаги в первую очередь?