शरीर के समापन टैग ( </body>) के बाद स्क्रिप्ट टैग को रखना कितना गलत है । ?
<html>
....
<body>
....
</body>
<script type="text/javascript" src="theJs.js"></script>
</html>
शरीर के समापन टैग ( </body>) के बाद स्क्रिप्ट टैग को रखना कितना गलत है । ?
<html>
....
<body>
....
</body>
<script type="text/javascript" src="theJs.js"></script>
</html>
जवाबों:
यह टैग या टैग के बाहर मान्य नहीं होगा । इससे भी ज्यादा फर्क नहीं पड़ेगा - जब तक कि आप DOM मैनिपुलेशन नहीं कर रहे हैं जो IE को बॉडी एलिमेंट पूरी तरह से लोड होने से पहले तोड़ सकता है - इसे क्लोजिंग से ठीक पहले डालना ।<body><head></body>
<html>
....
<body>
....
<script type="text/javascript" src="theJs.js"></script>
</body>
</html>
<script src="..." defer>, जो सभी प्रमुख ब्राउज़रों में काम करता है (यद्यपि IE9 और निम्न में संभावित रूप से ब्रेकिंग बग के साथ)।
हाँ। शरीर के लिए अंतिम टैग के बाद केवल html तत्व के लिए टिप्पणियों और अंतिम टैग की अनुमति है।
ब्राउज़र त्रुटि सुधार कर सकते हैं, लेकिन आपको उस पर कभी भी निर्भर नहीं होना चाहिए।
जैसा कि एंडी ने कहा कि दस्तावेज मान्य नहीं होगा, लेकिन फिर भी स्क्रिप्ट की व्याख्या की जाएगी। उदाहरण के लिए WebKit से स्निपेट देखें :
void HTMLParser::processCloseTag(Token* t)
{
// Support for really broken html.
// we never close the body tag, since some stupid web pages close it before
// the actual end of the doc.
// let's rely on the end() call to close things.
if (t->tagName == htmlTag || t->tagName == bodyTag
|| t->tagName == commentAtom)
return;
...
IE इसे अब अनुमति नहीं देता है (संस्करण 10 के बाद से, मुझे विश्वास है) और इस तरह की लिपियों को अनदेखा करेगा। एफएफ और क्रोम अभी भी उन्हें सहन करते हैं, लेकिन संभावना है कि किसी दिन वे इसे गैर-मानक के रूप में छोड़ देंगे।
W3C द्वारा अनुशंसित प्रक्रिया द्वारा "तत्व निकाय" के बाद "तत्व लिपि" के अनुसार "तत्व लिपि" डालें । "ट्री कंस्ट्रक्शन" में उस सामग्री को प्रोसेस करने के लिए एरर बनाते हैं और "फिर से टोकन" चलाते हैं। तो यह अतिरिक्त कदम की तरह है। तभी "स्क्रिप्ट निष्पादन" चलाया जा सकता है - योजना प्रक्रिया देखें ।
और कुछ भी "पार्स त्रुटि"। "सम्मिलन मोड" को "शरीर में" स्विच करें और टोकन को पुन: उत्पन्न करें।
तकनीकी रूप से ब्राउज़र द्वारा यह आंतरिक प्रक्रिया है, वे इसे कैसे चिह्नित और अनुकूलित करते हैं।
मुझे उम्मीद है कि मैंने किसी की मदद की।
हाँ। लेकिन अगर आप इसके बाहर कोड जोड़ते हैं तो सबसे अधिक संभावना दुनिया का अंत नहीं होगा क्योंकि अधिकांश ब्राउज़र इसे ठीक कर देंगे, लेकिन यह अभी भी एक बुरा अभ्यास है।
Google वास्तव में 'सीएसएस ऑप्टिमाइज़ेशन' के संबंध में इसकी अनुशंसा करता है। वे महत्वपूर्ण अस्तर-गुना शैलियों को अस्तर देने और शेष (सीएसएस फ़ाइल) को हटाने की सलाह देते हैं।
उदाहरण:
<html>
<head>
<style>
.blue{color:blue;}
</style>
</head>
<body>
<div class="blue">
Hello, world!
</div>
</body>
</html>
<noscript><link rel="stylesheet" href="small.css"></noscript>
देखें: https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery
bodyतत्व के बाहर सामान रखने वाले नहीं हैं । Google लेख किसी को भी ऐसी कोई भी बात करने की सलाह नहीं देता है।
आधुनिक ब्राउज़रों के शरीर में लिपि टैग लगेंगे जैसे:
<body>
<script src="scripts/main.js"></script>
</body>
मूल रूप से, इसका मतलब है कि पृष्ठ के समाप्त होने के बाद स्क्रिप्ट लोड हो जाएगी, जो कुछ मामलों में उपयोगी हो सकती है (जैसे डोम हेरफेर)। हालाँकि, मैं आपको वही स्क्रिप्ट लेने की सलाह देता हूं और इसे "डीफर" के साथ हेड टैग में डाल देता हूं, क्योंकि यह समान प्रभाव देगा।
<head>
<script src="scripts/main.js" defer></script>
</head>
scriptटैग में एक eventविशेषता थी जिसे स्क्रिप्ट को पार्स करने के लिए निर्धारित करने के लिए परिभाषित किया जा सकता है। इसलिए आपके पास event="load" event="DOMContentLoaded"DOM बनाने के बाद या event="beforeunload"विंडो beforeunloadइवेंट पर स्क्रिप्ट चलाने के लिए है । उदाहरण के लिए, <script src="scripts/main.js" event="DOMContentLoaded"></script>।