2010-03-15 8 views
10

तो किसी भी कस्टम डेटा विशेषता का उपयोग करें कि मैं "डेटा-" साथ शुरू करना चाहिए:मुझे अपने कस्टम विशेषताओं को "डेटा-" के साथ क्यों प्रस्तुत करना चाहिए?

<li class="user" data-name="John Resig" data-city="Boston" 
    data-lang="js" data-food="Bacon"> 
    <b>John says:</b> <span>Hello, how are you?</span> 
</li> 

विल कुछ भी बुरा होगा अगर मैं सिर्फ इस पर ध्यान न दें? अर्थात्:

<li class="user" name="John Resig" city="Boston" 
    lang="js" food="Bacon"> 
    <b>John says:</b> <span>Hello, how are you?</span> 
</li> 

मुझे लगता है कि एक बुरी बात यह है कि मेरे कस्टम विशेषताओं एचटीएमएल के साथ संघर्ष कर सकता है विशेष अर्थ (जैसे, name), लेकिन एक तरफ इस से, वहाँ सिर्फ "example_text" लेखन के बजाय साथ एक समस्या है के साथ जिम्मेदार बताते हैं "डेटा-example_text"? (यह मान्य नहीं है, लेकिन कौन परवाह करता है?)

+3

लैंग विशेषता सामान्य, बोली जाने वाली भाषा के लिए उपयोग की जाने वाली एक डिफ़ॉल्ट HTML विशेषता है। वर्तमान संदर्भ में इसका उपयोग करने से इसके डिफ़ॉल्ट व्यवहार के साथ संघर्ष होगा और यह एक आदर्श उदाहरण है कि आपको डेटा- * उपसर्ग का उपयोग क्यों करना चाहिए। – user007

उत्तर

16

डेटा- * के साथ पूर्ववर्ती कस्टम विशेषताओं को रखने के लिए कई लाभ हैं।

  1. यह गारंटी देता है कि भविष्य में संस्करणों में HTML के एक्सटेंशन के साथ कोई भी संघर्ष नहीं होगा। यह एक समस्या है जिसे एचटीएमएल 5 में पेश किए गए कुछ नए विशेषताओं के साथ पहले से ही कुछ डिग्री का सामना करना पड़ा है, जहां मौजूदा साइटें समान नाम वाले गुणों का उपयोग कर रही थीं और अलग-अलग और असंगत, कस्टम व्यवहार की अपेक्षा कर रही थीं। (जैसे input तत्वों पर required विशेषता अतीत में कुछ लोकप्रिय वेबसाइटों पर कुछ संघर्ष किया है के लिए जाना जाता है)

  2. एक बार ब्राउज़रों सुविधा का समर्थन, वे स्क्रिप्ट से इन विशेषताओं पहुँचने के लिए एक और अधिक सुविधाजनक डोम एपीआई प्रदान करेगा।

  3. वे स्पष्ट गुण प्रदान करते हैं कि कौन से गुण कस्टम गुण हैं, और कौन से मानक मानकीकृत गुण हैं। यह न केवल सत्यापनकर्ताओं को डेटा के साथ किसी भी विशेषता को अनुमति देने की इजाजत देता है- * अन्य विशेषताओं (उदाहरण के लिए टाइपो को पकड़ने के लिए) में उपयोगी त्रुटि जांच करते समय, यह स्रोत कोड के इस पहलू को पढ़ने वालों को स्पष्ट करने में भी मदद करता है, जिसमें लोग भी शामिल हैं मूल लेखक के बाद वेबसाइट पर कौन काम कर सकता है।

+1

मैं अपनी सांस (2) के लिए नहीं रख रहा हूं, लेकिन (1) और (3) अच्छे अंक हैं –

+1

आप उन दिनों के बारे में सोच रहे हैं जब ब्राउज़र ने केवल नई सुविधाओं को धीरे-धीरे पेश किया, और केवल ही कभी।इन दिनों अधिकांश ब्राउज़र 'डेटा- *' गुणों तक पहुंच को सरल बनाने के लिए 'डेटासेट' तत्व गुण का समर्थन करते हैं: http://caniuse.com/#feat=dataset –

3

John Resig के अनुसार, इन कस्टम डेटा के अलावा का पूरा उद्देश्य एचटीएमएल 5 sepcs को जिम्मेदार बताते हैं एचटीएमएल में कस्टम डेटा एम्बेड करने के लिए है, जबकि अभी भी मान्य किया जा रहा अनुमति है

आप सत्यापन के बारे में परवाह नहीं करते हैं (और, जैसा कि आप ने कहा, अपने कस्टम विशेषताओं मौजूदा HTML के साथ टकराने नहीं कर रहे हैं जिम्मेदार बताते हैं name, id, style, आदि जैसे), तो मुझे लगता है कि आप का उपयोग करने की जरूरत नहीं data- उपसर्ग। लेकिन यह मानते हुए कि वैध, संगत कोड लिखने के लिए यह एक बड़ी लागत नहीं है, मुझे नहीं लगता कि आप ऐसा क्यों नहीं करेंगे।

+1

मुझे लगता है कि मेरा सवाल यह है कि मुझे लिखने वाले कोड से क्या मूल्य मिलता है जो मान्य करता है? (यह देखते हुए कि अर्थहीन "डेटा-" उपसर्ग को बार-बार टाइप करना बिना लागत के है) –

+2

एक बात के लिए, आपको यह तथ्य मिलता है कि आप अपने मार्कअप में समस्याओं को ढूंढने के लिए एक सत्यापनकर्ता का उपयोग कर सकते हैं। जब आप किसी पृष्ठ पर काम कर रहे हों तो यह एक बड़ी जीत है, क्योंकि एक लंबे पृष्ठ में एक बंद div या कुछ खोना इतना आसान है। यदि आप समय-समय पर सुनिश्चित करते हैं कि आपका मार्कअप मान्य है, तो आप दिखाई देने के तुरंत बाद अपरिहार्य त्रुटियों को इंगित करने में सक्षम होने की अधिक संभावना रखते हैं। –

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