HTML में, एक एट्रिब्यूट आमतौर पर एक एट्रिब्यूट नाम और एक एट्रिब्यूट मान से मिलकर बनता है, जैसे एंकर एलिमेंट उदाहरण में।
हालांकि, कभी-कभी मान (व्यवहार) एट्रिब्यूट नाम में अंतर्निहित होता है।
उदाहरण के लिए, defer एट्रिब्यूट जिसका उपयोग हम HTML <script> एलिमेंट को संशोधित करने के लिए करते हैं:
<script defer src="app.js"></script>
ध्यान दें कि defer एट्रिब्यूट में असाइनमेंट ऑपरेटर (=) या मान नहीं होता क्योंकि इसका व्यवहार अंतर्निहित है।
defer एक तथाकथित बूलियन एट्रिब्यूट है। बूलियन एक प्रकार के डेटा के लिए उपयोग किए जाते हैं जिनके केवल दो मान हो सकते हैं, true या false (या सक्षम/अक्षम)।
आइए defer एट्रिब्यूट पर करीब से नज़र डालें।
यह <script> एलिमेंट, बिना defer एट्रिब्यूट के, ब्राउज़र द्वारा लोड होते ही app.js मान से अपना src जावास्क्रिप्ट कोड निष्पादित करेगा:
<script src="app.js"></script>
डिफ़ॉल्ट रूप से, HTML दस्तावेज़ों को ऊपर से नीचे तक, एक समय में एक लाइन पार्स (पढ़ा) जाता है। इसका मतलब है कि यदि आप अपने दस्तावेज़ के शीर्ष पर कोई जावास्क्रिप्ट डालते हैं, तो यह आपके दस्तावेज़ के बाकी हिस्सों के पार्स होने से पहले निष्पादित होगा।
यह स्क्रिप्ट एलिमेंट का डिफ़ॉल्ट व्यवहार है।
लेकिन जब आप <script> एलिमेंट में defer जोड़ते हैं तो आप उस डिफ़ॉल्ट व्यवहार को अक्षम कर देते हैं:
<script defer src="app.js"></script>
अब, जावास्क्रिप्ट कोड तब तक निष्पादित नहीं होगा जब तक पूरा पेज लोड नहीं हो जाता।
शाब्दिक अर्थ में, defer का अर्थ है टालना/स्थगित करना/इंतजार करना।
स्पष्ट करने के लिए:
deferके बिना, जावास्क्रिप्ट लोड होते ही निष्पादित होता है।- साथ
deferजावास्क्रिप्ट पूरे HTML पेज के लोड होने तक निष्पादित होने की प्रतीक्षा करता है।
यदि एट्रिब्यूट आपको भ्रमित करते हैं, तो चिंता न करें, एक बार जब आप उन्हें अभ्यास में उपयोग करना शुरू करते हैं तो यह हमेशा 10 गुना अधिक समझ में आता है।