2012-11-01 13 views
9

एचटीएमएल 5 ने स्क्रिप्ट के लिए defer विशेषता प्रस्तुत की जिसका लोडिंग HTML पृष्ठ में स्थगित किया जा सकता है। defer किसी भी स्क्रिप्ट के लिए उपयोग किया जा सकता है जिसे डीओएम से पहले लोड करने की आवश्यकता नहीं है (ए.के.ए. डीओएम के साथ तैयार होने से पहले गड़बड़ नहीं करता है)।पेज बॉडी के अंत में स्थगित स्क्रिप्ट और स्क्रिप्ट के बीच क्या अंतर है?

लंबे समय तक वेब डेवलपर्स को उन सभी स्क्रिप्ट्स को रखने की सलाह दी गई है जिन्हें पृष्ठ head में डीओएम से पहले लोड करने की आवश्यकता नहीं है, लेकिन इसके बजाय body टैग के अंत से पहले।

defer और लंबी अभ्यास की सलाह के बीच क्या अंतर है? क्या बाद वाला पहला विकल्प है?

मैं किसी भी उत्तर की सराहना करता हूं। धन्यवाद।

+0

मेरा मानना ​​है कि यदि आप डिफर का उपयोग करते हैं तो भी स्क्रिप्ट डाउनलोड की जा रही है, और यह धीमा हो सकता है, कुल मिलाकर पेज लोड – Evgeny

+2

नीचे स्क्रिप्ट डालने का विचार न केवल निष्पादन में देरी है, बल्कि डाउनलोड करने में भी देरी है – Evgeny

+0

धन्यवाद @ EugeneXa। – rodrigoalves

उत्तर

1

एसिंक और डिफ्रैर स्क्रिप्ट दोनों पार्सर को रुकने के बिना तुरंत डाउनलोड करना शुरू कर देते हैं और दोनों स्क्रिप्ट पर निर्भर प्रारंभ करने के लिए सामान्य आवश्यकता को संबोधित करने के लिए एक वैकल्पिक ऑनलोड हैंडलर का समर्थन करते हैं।

webkit blog से, इसलिए व्यवहार सभी ब्राउज़रों में आवश्यक नहीं है। इसलिए, प्रदर्शन तब भी बेहतर होगा जब स्क्रिप्ट अभी भी अंत में हों, क्योंकि उन्हें बाद में डाउनलोड किया जाएगा।

2017 संपादित करें: ब्राउज़र समर्थन अब बहुत बेहतर है, इसलिए आप शायद सिर में async/defer स्क्रिप्ट से दूर हो सकते हैं। यह अभी भी उन्हें नीचे रखने के लिए एक सुरक्षित विकल्प है; नए ब्राउज़र अभी भी उन्हें जल्दी डाउनलोड करेंगे भले ही वे सिर में न हों।

+0

इसे मिला, धन्यवाद। – rodrigoalves

+3

जब स्क्रिप्ट को बाद में डाउनलोड किया जाता है तो प्रदर्शन बेहतर क्यों होगा? स्क्रिप्ट डाउनलोड होने पर जल्द से जल्द प्रदर्शन बेहतर नहीं होगा? –

+0

@RuudLenders क्योंकि उस समय समर्थन समर्थन था और इतने सारे ब्राउज़र तुरंत स्क्रिप्ट डाउनलोड करेंगे और यह स्क्रिप्ट डाउनलोड और निष्पादित होने तक प्रतिपादन को अवरुद्ध कर देगा। साढ़े चार साल बाद समर्थन बहुत बेहतर है, लेकिन ब्राउजर डाउनलोड करना शुरू करने के समय में अंतर छोटा है (यदि कोई है, तो प्रीपेरिंग के साथ) तो मैं अभी भी उन्हें शरीर के अंत में रखूंगा। –

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