2009-06-12 10 views
14

मैं Crockford's JavaScript best practise के माध्यम से पढ़ा है, और उन्होंने कहा:क्या मुझे अपने एससीआरआईपीटी टैग में टाइप = "टेक्स्ट/जावास्क्रिप्ट" शामिल करना चाहिए?

भाषा या प्रकार विशेषताओं का उपयोग करने के लिए कोई जरूरत नहीं है। यह सर्वर है, स्क्रिप्ट टैग नहीं, जो एमआईएमई प्रकार निर्धारित करता है।

लेकिन मैं कभी नहीं देखा है किसी को भी उनके <script> टैग में type विशेषता को छोड़ देते हैं ...

तुम लोगों type शामिल है? क्यों नहीं)?

+0

क्या आपके पास सबसे अच्छे प्रथाओं का लिंक है जिसका आप उल्लेख कर रहे हैं? –

+2

http://validator.w3.org/check?uri=www.google.com&charset=(detect+automatically)&doctype=Inline&group=0 "आवश्यक विशेषता" के तहत टाइप करें "निर्दिष्ट नहीं" – IAdapter

उत्तर

9

आपने गलत समझा कि क्रॉकफ़ोर्ड का क्या अर्थ है, उन्होंने यह नहीं कहा कि type विशेषता पूरी तरह से अमान्य है, बस यह गलत है। जावास्क्रिप्ट के लिए एमआईएमई प्रकार application/javascript (या application/ecmascript मुझे अभी याद नहीं है)।

सामान्य उपयोग हालांकि text/javascript है जो ब्राउज़र किसी भी समस्या के बिना संभाल लेंगे defacto मानक लंबे समय तक मानक है।

<script src="..." टैग के संबंध में यह अनावश्यक है क्योंकि सर्वर फ़ाइल के एमआईएमई प्रकार को निर्धारित करता है और यही ब्राउज़र तब से निपटता है।

वह वाईयूआई रंगमंच (http://developer.yahoo.com/yui/theater/) पर अपने एक वीडियो में सबसे अच्छा बताता है। मुझे याद नहीं है कि वह किस बारे में बात करता है, मुझे लगता है कि यह उन्नत जावास्क्रिप्ट श्रृंखला में था (लेकिन हाँ मैंने उन्हें कुछ बार देखा है ताकि वे एक-दूसरे में धुंधला हो जाएं)।

तो अगर आप मान्य एक्सएचटीएमएल लिखना चाहते हैं आप text/javascript की तरह कुछ प्रदान करने की आवश्यकता है, लेकिन यह जावास्क्रिप्ट भाषा का आधिकारिक MIME प्रकार नहीं है।

+1

यह ध्यान देने योग्य है कि इंटरनेट एक्सप्लोरर स्क्रिप्ट को पहचान नहीं पाएगा जिसमें टाइप एट्रिब्यूट के लिए निर्दिष्ट "एप्लिकेशन/जावास्क्रिप्ट" है - यह केवल "टेक्स्ट/जावास्क्रिप्ट" को पहचानता है :-( – NickFitz

+0

कौन सा आईई संस्करण है? मानक केवल 2007 की तरह ही तय किया गया था या कुछ –

+0

http://stackoverflow.com/questions/1288263/why-doesnt-ie8-recognize -typeapplication-जावास्क्रिप्ट में एक स्क्रिप्ट टैग – voyager

3

मैं type विशेषता का उपयोग करता हूं क्योंकि यह वैध HTML के लिए आवश्यक है। लेकिन व्यावहारिक रूप से, यह कोई उद्देश्य नहीं देता है।

2

प्रकार विशेषता HTML और XHTML सत्यापन के लिए आवश्यक है तो मैं हमेशा यह

7

लिखने स्क्रिप्ट पेज में एम्बेडेड है, तो Crockford की सलाह प्रासंगिक नहीं है।

यदि आप मानक-अनुरूप HTML लिखना चाहते हैं, तो यह अभी भी प्रासंगिक नहीं है।

वह आम तौर पर जावास्क्रिप्ट के साथ सबकुछ करने के बारे में बताता है, इसलिए शायद आपको यह बताने के बजाय कि आपको क्या करना है, कुछ पृष्ठभूमि जानकारी दे रही है।

लिंक का पालन करने के बाद, वह पृष्ठ अपनी उम्र दिखा रहा है। उदाहरण के लिए:

<script src=filename.js> टैग संभव के रूप में शरीर में के रूप में देर से रखा जा चाहिए। इससे अन्य पृष्ठ घटकों पर स्क्रिप्ट लोडिंग द्वारा लगाए गए विलंबों के प्रभाव को कम कर देता है।

"आधुनिक" दृष्टिकोण jQuery (या इसी तरह शैली) का उपयोग करने के लिए जब दस्तावेज़ लोड हो जाए, जो स्वचालित रूप से उस समस्या का हल है, जहाँ भी यह तार्किक समझ में आता है आप स्क्रिप्ट टैग डाल करने की इजाजत दी प्रसंस्करण प्रदर्शन करने के लिए है।

+9

एससीआरआईपीटी को रखने की सलाह जितनी देर हो सके बॉडी अभी भी प्रासंगिक है। Http://developer.yahoo.com/performance/rules.html#js_bottom – Gumbo

+0

@ गम्बो देखें: क्या यह अभी भी दस्तावेज़ की पूरी तरह से लोड होने तक स्क्रिप्ट लोडिंग को रोकने के लिए jQuery जैसी लाइब्रेरी के साथ प्रासंगिक होगा? ऐसा लगता है कि सलाह केवल "पुरानेस्कूल" स्क्रिप्ट प्लेसमेंट में प्रासंगिक है, जहां डीओएम में पहुंचने पर स्क्रिप्ट लोड हो जाएंगी। – peirix

+1

@ गम्बो - मुझे विश्वास नहीं है कि यह एक महत्वपूर्ण मुद्दा है। सबसे पहले, एक जावास्क्रिप्ट-भारी पृष्ठ तब तक कोई उपयोग नहीं हो सकता जब तक कि कुछ स्क्रिप्ट इसे प्रस्तुत करने के लिए समाप्त नहीं हो जाती है, इसलिए इसमें कुछ मूल्य नहीं है * दिखाई देने पर * तैयार होने के लिए। दूसरा, यदि आप बाहरी स्क्रिप्ट फ़ाइल का उपयोग करते हैं, तो यह केवल पृष्ठ की पहली विज़िट पर डाउनलोड हो जाता है और उसके बाद कैश किया जाता है, इसलिए इसे डाउनलोड करने की लागत के बारे में चिंता करने योग्य नहीं है। –

0

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

5

एचटीएमएल 5 spec का कहना है कि डिफ़ॉल्ट typetext/javascript है ... तो एचटीएमएल 5 में आप जावास्क्रिप्ट में वास्तव में, स्क्रिप्टिंग के सभी मामलों में यह रिक्त स्थान छोड़ सकते हैं। अधिक जानकारी के लिए the spec देखें।

HTML4 में type विशेषता required है, तो आप उस मामले में यह शामिल करना चाहिए यदि आप "वैध" एचटीएमएल होने के बारे में चिंतित हैं, जाहिर है, अगर Crockford कह रहा है विशेषता की जरूरत नहीं है, वहाँ अमान्य HTML करने के लिए कोई स्पष्ट नकारात्मक पक्ष यह है इस मामले में।

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