Kısa bir süre önce her JS ve CSS dosyasının <head>
her sayfanın içine enjekte edilmesini gerektiren bir modül geliştirdim . Başlangıçta kullandım:
$doc =& JFactory::getDocument();
$doc->addScript(JURI::base(true).'/modules/mod_x/js/mod_x.js');
Ancak, önbelleğe alma etkinleştirildiğinde sitenin hem önbelleğe alınmış sürümü hem de önbelleğe alınmamış sürümü yüklediğini /cache
ve /modules/mod_x/js/
JS hatalarına neden olduğunu fark ettim .
Bunu şu şekilde değiştirdiğimde:
JHtml::script(Juri::base().'modules/mod_x/js/mod_x.js');
Komut dosyası, bu hataları gidererek önbellekten yalnızca bir kez yüklendi.
Ben docs okumak olduğunu addScript
yöntem daha 'düşük seviyeli' oldu JHtml:script
yöntemle yine de söylemeden ötesinde ...
Tabii ki, [addScript kullanıyorsanız] yukarıdaki [JHtml: script yöntemi] kullanılarak otomatik olarak yapılacak bazı adımları [JHtml: script'in sizin için yaptığı] manuel olarak kodlamanız gerekecektir.
... daha fazla ayrıntı verilmiyor.
Peki fark nedir? JHtml:script
Sonunda addScript
bir noktada bir belge nesnesi üzerinde çağrıları varsayalım , ama ilk olarak diğer aracı adımlar atıldı?