मैंने हाल ही में एक मॉड्यूल विकसित किया है <head>जिसमें प्रत्येक पृष्ठ में कुछ जेएस और सीएसएस फाइलों को इंजेक्ट किया जाना आवश्यक है । प्रारंभ में, मैंने उपयोग किया:
$doc =& JFactory::getDocument();
$doc->addScript(JURI::base(true).'/modules/mod_x/js/mod_x.js');
हालाँकि, मैंने देखा कि जब कैशिंग सक्षम किया गया था, तो साइट से एक कैश्ड संस्करण /cacheऔर गैर-कैश्ड संस्करण दोनों को लोड किया गया था /modules/mod_x/js/, जिससे जेएस त्रुटियां हुईं।
जब मैंने इसे बदल दिया:
JHtml::script(Juri::base().'modules/mod_x/js/mod_x.js');
इन त्रुटियों को हल करते हुए, केवल एक बार स्क्रिप्ट को कैश से लोड किया गया था।
मैंने डॉक्स में पढ़ा कि addScriptविधि विधि से अधिक 'निम्न स्तर' की थी JHtml:script, लेकिन यह कहने से परे कि ...
बेशक, आपको मैन्युअल रूप से कुछ चरणों को कोड करने की आवश्यकता होगी [जो कि JHtml: script आपके लिए करता है] जो कि ऊपर [JHtml: script पद्धति] का उपयोग करके स्वचालित रूप से किया जाएगा [यदि आप addScript का उपयोग करते हैं]।
... आगे कोई विवरण नहीं दिया गया है।
तो क्या अंतर है? मुझे लगता है कि JHtml:scriptअंततः addScriptकिसी बिंदु पर एक दस्तावेज़ ऑब्जेक्ट पर कॉल किया जाता है, लेकिन क्या अन्य मध्यस्थ कदम पहले उठाए जाते हैं?