2010-06-08 14 views
8

यहाँ सभी स्क्रिप्ट डिफ़ॉल्ट रूप से Magento द्वारा लोड की एक सूची है:क्या Magento द्वारा लोड की गई सभी डिफ़ॉल्ट स्क्रिप्ट वास्तव में आवश्यक हैं?

../js/prototype/prototype.js //prototype library 
../js/prototype/validation.js //don't know what this does 
../js/scriptaculous/builder.js //don't know what this does 
../js/scriptaculous/effects.js //base scriptaculous effects library? 
../js/scriptaculous/dragdrop.js //component of scriptaculous effects 
../js/scriptaculous/controls.js //not sure? 
../js/scriptaculous/slider.js //more scriptaculous effects 
../js/varien/js.js   //don't know what this is 
../js/varien/form.js  //form validation scripts? 
../js/varien/menu.js  //menu/drop down menu scripts 
../js/mage/translate.js  //don't know what this does 
../js/mage/cookies.js  //don't know what this does 

ये स्क्रिप्ट कुल जावास्क्रिप्ट का 316.8K ... सभी न्यूनतम किया जा रहा है के विभिन्न राज्यों में (उदाहरण के लिए, prototype.js न्यूनतम किया गया नहीं है)।

तो मेरा पहला सवाल:

1) एक तरफ prototype.js से, दूसरों के सभी वास्तव में हैं कि जरूरत?

और

2) "सही" जिस तरह से ये स्क्रिप्ट को दूर करने के क्या है? लेआउट अद्यतन? या टेम्पलेट्स में hardcoded?

मैं अपनी Magento साइट को जितना संभव हो उतना हल्का वजन लोड करना चाहता हूं।

धन्यवाद!

+0

Magento: प्रो, सुरुचिपूर्ण और हल्के विस्तार! JoomlArt.com द्वारा आपके लिए लाया गया। आप इसे और अधिक वजन कम करना चाहते हैं? :) – Younes

+0

एक मामूली अनुकूलन के रूप में, prototype.js को कम करें :) –

+0

मैं वही सोच रहा था, मैं अपनी साइट को तेज़ करने की कोशिश कर रहा हूं। मैंने बस gzip सक्षम किया है और मेरी जावास्क्रिप्ट फ़ाइल आकार 70% कम हो गया है। – dardub

उत्तर

5

भाग 1 उत्तर देने के लिए भी शामिल है - कोई इन सब नहीं की आवश्यकता होती है, लेकिन सबसे अधिक हैं और यह आपकी थीम पर निर्भर करता है। एक डिफ़ॉल्ट Magento विषय उन सभी का उपयोग करता है, लेकिन एक कस्टम एक निश्चित रूप से सभी भयानक लोगों की आवश्यकता नहीं होगी।

विविधता, mage और प्रोटोटाइप वाले लोगों को हमेशा की आवश्यकता होगी, इन सभी के साथ दूर की जाने वाली थीम बनाना बहुत कठिन है, क्योंकि पृष्ठ पर कुछ जावास्क्रिप्ट उन पर निर्भर करता है जो वास्तव में थीम से नहीं आता है लेकिन कोर php फ़ाइलों से।

सरल विषयों पर मैंने ड्रैगड्रॉप और स्लाइडर को हटाने के अच्छे परिणाम प्राप्त किए हैं क्योंकि मैं उत्पाद ज़ूम डिस्प्ले का उपयोग नहीं करता हूं। यदि आप Magento मेनू का उपयोग नहीं कर रहे हैं, तो आप मेनू को हटा सकते हैं, लेकिन केवल तभी जब आप डमी जेएस फ़ंक्शंस को पीछे छोड़ने के लिए किसी भी कॉल को पकड़ने के लिए तैयार होते हैं - मेनू नेविगेशन ऑब्जेक्ट सीधे PHP चरण से जावास्क्रिप्ट फ़ंक्शन इंजेक्ट करता है पकड़ा जा सकता है (या बेहतर अभी तक आप अपनी खुद की श्रेणी नेविगेशन ऑब्जेक्ट रोल कर सकते हैं जो ऐसा नहीं करता है!)।

भाग 2 लिए - लेआउट page.xml अपने विषयों को संपादित उन्हें <block type="page/html_head" name="head" as="head"> टैग से दूर करने के लिए। मैं उन्हें टिप्पणी करने और प्रत्येक के रूप में परीक्षण करने का सुझाव देता हूं।

आप आवश्यक जावास्क्रिप्ट फ़ाइलों को पृष्ठ प्रकारों में इंजेक्ट कर सकते हैं जिन्हें उचित लेआउट फ़ाइलों के मुख्य भाग में जावास्क्रिप्ट टैग जोड़कर उनकी आवश्यकता होती है। यह कैसे किया जाता है इसका एक उदाहरण के रूप में डिफ़ॉल्ट प्रेषक को देखो।xml लेआउट फ़ाइल जो product.js फ़ाइल को केवल उन पृष्ठों के लिए जोड़ती है जिन्हें इसकी आवश्यकता होती है।

यदि आप पेज प्रकार के आधार पर आक्रामक रूप से जावास्क्रिप्ट को जोड़ना/निकालना शुरू करते हैं तो आपको यह भी विचार करना होगा कि Magento जावास्क्रिप्ट फ़ाइलों को कैसे विलीन करता है। जावास्क्रिप्ट फ़ाइलों को मर्ज करने के लिए कॉन्फ़िगरेशन स्क्रीन के डेवलपर क्षेत्र में एक सेटिंग है, इसे चालू करना बहुत अच्छी बात है। यह मुख्य क्षेत्र के अंदर सभी जावास्क्रिप्ट फ़ाइलों को विलय करता है जिन्हें "addss" या "addItem" का उपयोग करके इंजेक्शन दिया गया है, जिसमें "जेएस" या "skin_js" आइटम प्रकार है।

लेकिन यदि आप पेज के आधार पर किसी पृष्ठ पर स्क्रिप्ट को शामिल/छोड़ना शुरू करते हैं तो आप पाएंगे कि आप अलग-अलग पृष्ठों पर अलग विलय वाली जेएस फाइलें उत्पन्न कर रहे हैं - एक बड़ी जेएस फ़ाइल कैशिंग के अधिकांश लाभों को नष्ट करना !

दोनों दुनिया के सर्वश्रेष्ठ प्राप्त करने के लिए आपको सिर में जेएस इंजेक्ट करने में सक्षम होना चाहिए, लेकिन आइटम प्रकार निर्दिष्ट किए बिना, इस प्रकार उस फ़ाइल को विलय होने से रोकना - लेकिन मैंने अभी तक यह कोशिश नहीं की है। यदि यह काम करता है तो आपको कोर लाइब्रेरीज़ विलय मिल जाएंगी और आपकी प्रति पृष्ठ कस्टम फाइलें अलग-अलग शामिल होंगी, जिसका अर्थ है कि आप बड़े को कैश करते हैं और वे केवल उस बिट को डाउनलोड करते हैं जो बदलता है।

1

मैं नहीं कह सकता कि वे सभी क्या हैं लेकिन मुझे पता है कि उनमें से अधिकतर परेशान करने की आवश्यकता है क्योंकि Magento जेएस के आवंटन का उपयोग करता है।

यह आपके प्रश्न का उत्तर नहीं देता है लेकिन आप सिस्टम -> कॉन्फ़िगरेशन -> उन्नत -> डेवलपर -> जावास्क्रिप्ट सेटिंग्स में जाकर और फिर विलय करके Magento 1.4.01 (शायद 1.4.0 में भी) के साथ अपने प्रभाव को कम कर सकते हैं। उन सभी को तो आपके पास केवल एक HTTP अनुरोध है (सीएसएस के साथ भी किया जा सकता है)।

मुझे लगता है कि उन्हें हटाने के लिए जाने का "सबसे सही" तरीका एक नई थीम बनाना होगा जिसके लिए उन्हें आवश्यकता नहीं है और उन्हें शामिल नहीं किया जाएगा क्योंकि उन्हें प्रश्न 2 के जवाब में आवश्यकता नहीं होगी टेम्पलेट्स निश्चित रूप से आगे बढ़ने का रास्ता होगा। मुझे लगता है कि यह नियंत्रित करता है सटीक टेम्पलेट याद नहीं कर सकते, लेकिन मुझे यकीन है कि मैं एक जे एस की एक बड़ी सूची है कि देखा है हूँ/सीएसएस

+0

जेएस को अक्सर page.xml (या अन्य लेआउट.एक्सएमएल) फ़ाइलों के अंदर परिभाषित किया जाता है। साइट को संचालित करने के लिए आम तौर पर आवश्यक फ़ाइलों पर +1, हालांकि प्रत्येक पृष्ठ पर प्रत्येक स्क्रिप्ट का उपयोग नहीं किया जाता है। –

+0

@ जोसेफ मस्ती - हालांकि, हर पृष्ठ पर उनकी आवश्यकता नहीं है, मुझे बस मेनू ड्रॉपडाउन करने के लिए 3 अलग-अलग यूआई पुस्तकालयों को शामिल करने के लिए इतना बड़ा अपशिष्ट लगता है। – pxl

+0

जेएस फाइलों को विलय करने से समस्या हल होती है, लेकिन मुझे समस्या को हल करने में दिलचस्पी है। मैं प्रोटोटाइप का उपयोग करने के साथ ठीक हूं, इसलिए यह "मैं Magento के साथ jquery का उपयोग कैसे करूं" पोस्ट नहीं है। और मैं प्रति पृष्ठ लेआउट अपडेट बनाने के साथ ठीक हूं जिसमें केवल जेएस आवश्यक है। मुझे संसाधनों को शामिल नहीं करना है जो केवल न्यूनतम उपयोग किए जाते हैं। – pxl

संबंधित मुद्दे