मैंने हाल ही में एक मॉड्यूल विकसित किया है <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
किसी बिंदु पर एक दस्तावेज़ ऑब्जेक्ट पर कॉल किया जाता है, लेकिन क्या अन्य मध्यस्थ कदम पहले उठाए जाते हैं?