2009-02-25 19 views
8

पर बाहरी जावास्क्रिप्ट फ़ाइल का विपक्ष एएसपीएक्स पेज के हिस्से के रूप में जेएस समेत बाहरी जेएस फ़ाइल का उपयोग करने के कुछ नुकसान क्या हैं?इनलाइन जावास्क्रिप्ट

मुझे एक वास्तुशिल्प निर्णय लेने और सहकर्मियों से सुना है कि बाहरी जेएस कभी-कभी अच्छा नहीं खेलता है।

उत्तर

10

एकमात्र नकारात्मक पक्ष जिसे मैं जानता हूं वह अतिरिक्त HTTP अनुरोध आवश्यक है। जैसे ही जावास्क्रिप्ट दो पृष्ठों द्वारा उपयोग किया जाता है या पृष्ठ उसी उपयोगकर्ता द्वारा पुनः लोड किया जाता है, उतनी ही दूर हो जाती है।

2

उन्हें "अच्छा खेलना" परिभाषित करने के लिए कहें। बेहतर तार्किक संगठन के अलावा, बाहरी जेएस फ़ाइलों को पहले ही कैश किए जाने पर संचरित नहीं किया जाना चाहिए।

हम YUI compressor का उपयोग स्वचालित रूप से उत्पादन और स्टेजिंग निर्माण करते समय बाह्य स्क्रिप्ट को कम करने और गठबंधन करने के लिए करते हैं।

5

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

इसके अलावा रखरखाव कुछ भी ध्यान में रखना है। यदि यह सामान्य जेएस है तो एक बदलाव करने के लिए दर्द का थोड़ा और अधिक होगा जब आपको एक जेएस फ़ाइल की बजाय एक्सएमएल फाइलों के स्क्रिप्ट ब्लॉक को एक्स अपडेट करना होगा।

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

1

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

हालांकि लाभ यह होगा कि आप अपने सभी जेएस कोड को एक और अधिक रखरखाव प्रारूप में रख सकते हैं।

1

बाहरी जावास्क्रिप्ट के लिए एक और बड़ा लाभ Jslint के साथ अपने वाक्यविन्यास की जांच करने की क्षमता है। वह, बाह्य स्क्रिप्ट को छोटा करने, गठबंधन करने और कैश करने की क्षमता में जोड़ा गया है, आंतरिक जावास्क्रिप्ट खराब विकल्प की तरह दिखता है।

3

कैशिंग एक प्रो और संभावित रूप से एक कॉन है, अगर आप इसे ठीक से संभाल नहीं रहे हैं।

प्रो स्पष्ट है, क्योंकि यह पहले पृष्ठ के प्रत्येक पृष्ठ लोड पर पृष्ठ लोडिंग में सुधार करेगा।

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

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