2009-12-23 15 views
14

मैंने पढ़ा है कि एक ही फ़ाइल में कई एकाधिक जावास्क्रिप्ट फ़ाइलों को विलय करने से प्रदर्शन में सुधार होता है, क्या यह सच है?एकाधिक जावास्क्रिप्ट फ़ाइलों को विलय करना

यदि हां, तो वहाँ उन्हें मर्ज करने के लिए एक आसान और त्रुटि मुक्त तरीका है, या शायद एक ऑनलाइन उपकरण स्वतः करता है कि?

बहुत धन्यवाद।

+1

मैं नहीं मानता कि सच होना विलय कर सकते हैं - एक अखंड js फ़ाइल डाउनलोड करने के लिए अधिक समय लगेगा, और अखंड जा रहा है वहाँ जोखिम है कि पेज 25% उपयोग कर रहा है उस पर जेएस (या कम) के। –

+0

यह कितनी फाइलों पर निर्भर करता है। जैसा कि पिछली टिप्पणीकर्ता बताती है, सभी पृष्ठों द्वारा लोड की गई आपकी सभी जेएस फाइल डालने के परिणामस्वरूप आप बहुत सारे अप्रासंगिक जेएस लोड कर सकते हैं। हालांकि, अगर आप 3 फाइलों को जोड़ते हैं जहां सभी कोड को अक्सर 1 में उपयोग किया जाता था, तो आप पेज लोड के लिए HTTP अनुरोधों की संख्या पर कटौती करेंगे और इस प्रकार पेज लोड की गति में सुधार करेंगे। – mopoke

+0

sinlge की बजाय एकाधिक फ़ाइलों को लोड करना एक निश्चित रूप से धीमा है क्योंकि आपका ब्राउज़र उन फ़ाइलों को लोड करने के लिए एकाधिक http कनेक्शन स्थापित कर रहा है और http कनेक्शन स्थापित करने के लिए कुछ लागत है। – Nayan

उत्तर

16

Multiple javascript/css files: best practices? और Supercharging Javascript in PHP देखें।

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

यदि आप ऐसा करते हैं तो एकाधिक जावास्क्रिप्ट फ़ाइलें वास्तव में कोई फर्क नहीं पड़ती हैं। लेकिन अगर आप क्लाइंट को प्रत्येक पृष्ठ पर 27 जेएस फाइलों को डाउनलोड करने के लिए मजबूर नहीं करते हैं, तो फाइलों की संख्या को कम करने से काफी अंतर हो सकता है। बेशक यह अभी भी प्रभावी कैशिंग/वर्जनिंग रणनीतियों से कम है।

एक और अधिक हाल ही में इस मुद्दे पर विचार करने के iphone caching है:

iPhone होगा कैश घटकों 15K से भी बड़ा नहीं

कुछ संयोजन फ़ाइलें कर सकते हैं परिस्थितियों में

तो ( पुराने प्रयोग में 25K था) हानिकारक हो।

+0

क्लाइंट को "सर्वश्रेष्ठ" क्यों झूठ बोल रहा है? कम से कम फ़ायरफ़ॉक्स जेएस फाइल आदि को सशर्त रूप से अनुरोध करता है (अगर-संशोधित-के बाद से)। फ़ाइल नामों के साथ tinker करने की कोई ज़रूरत नहीं है। –

+0

जब आप कैशिंग के संबंध में "फ़ाइलें" कहते हैं, तो आप वेबपृष्ठों के बारे में बात कर रहे हैं, जावास्क्रिप्ट सही नहीं है? –

+0

नहीं मेरा मतलब आम तौर पर स्थैतिक सामग्री (जावास्क्रिप्ट, सीएसएस, छवियां) है।उनको आक्रामक रूप से कैश किया जाना चाहिए। "झूठ बोलने" के बारे में कुछ भी किसने कहा? आप मूल रूप से क्लाइंट से कह रहे हैं "जब तक मैं आपको बताता हूं कि यह बदल गया है, तब तक इसके लिए मत पूछें"। अच्छी बात है। – cletus

3

यदि आपके पास कई जावास्क्रिप्ट फ़ाइलें हैं, तो यह उन्हें गठबंधन करने और उन्हें कम करने में मदद कर सकती है। उन्हें एक फ़ाइल में संयोजित करके, आप कनेक्शन और फ़ाइलों की संख्या को कम करते हैं जिन्हें आपकी साइट से डाउनलोड करने की आवश्यकता होती है। उन्हें छोटा करके, आप वास्तव में सफेद स्थान, टिप्पणियां, और बहुत कुछ निकालकर फ़ाइलों के आकार को कम करते हैं। जेएसएमआईएन और वाईयूआई कंप्रेसर पर एक नज़र डालें।

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

3

तुम भी http://jscompress.com/ पर एक नज़र, एक ऑनलाइन जावास्क्रिप्ट संपीड़न उपकरण ले जा सकते हैं।

0

आप pakd.io कोशिश कर सकते हैं आप CSS और JS फ़ाइलों

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