2010-11-22 15 views
5

मैं कुछ गैर-एचटीएमएल जानकारी स्टोर करने के लिए rel का उपयोग कर रहा हूं, अन्य विशेषताओं का सामान्य रूप से उपयोग नहीं किया जाता है जिसका उपयोग मैं जानकारी संग्रहीत करने के लिए कर सकता हूं?विविध जानकारी एचटीएमएल तत्व विशेषताएँ

+1

यह खतरनाक सामान है। रिला विशेषता वास्तव में बहुत व्यापक रूप से उपयोग की जाती है यानी अन्य चीजों के साथ Google बॉट इसका उपयोग करता है। अपने स्वयं के उद्देश्यों के लिए परिभाषित HTML विशेषताओं का उपयोग करने की सलाह नहीं दी जाती है। –

+0

@ क्रिस: यह सब सामान जावास्क्रिप्ट के एक हिस्से से उत्पन्न होता है, किसी को भी कुछ भी पढ़ना नहीं चाहिए। –

+0

बिल्कुल बिंदु! –

उत्तर

5

आप एचटीएमएल 5 पर स्विच करना और custom data attributes का उपयोग करना चाहेंगे।

+0

इससे पहले एचटीएमएल 5 इस बात से बाहर आया, मैंने हमेशा कस्टम डेटा के लिए विशेषता नाम के रूप में कुछ उपयोग किया है, इस धारणा के तहत कि यह बहुत ही असंभव है कि असली विशेषता अंडरस्कोर से शुरू होगी। क्या यह एक "स्वीकार्य" धारणा है, या क्या मैं डेटा को कुछ सब कुछ बदलने से बेहतर होगा? –

+0

मैं 'डेटा- *' का उपयोग करने की अनुशंसा करता हूं, क्योंकि यह सौदा में वैध HTML है। –

+0

मैं इसका उपयोग करूंगा, धन्यवाद। मैं jQuery के 'attr' फ़ंक्शन का उपयोग कर रहा हूं इसलिए मूल जेएस कार्यान्वयन की आवश्यकता नहीं है। –

3

एचटीएमएल 5 में आप अपने खुद के data- जो चाहो स्टोर करने के लिए जिम्मेदार बताते हैं परिभाषित कर सकते हैं।

3

यदि आप चाहें तो आप अपनी खुद की विशेषताओं को बना सकते हैं। डेटा को एक विशेषता में रखना संभव नहीं है यदि विनिर्देश के अनुसार इसमें कुछ सार्थक होना चाहिए।

2

HTML 5 spec में, आप data-* विशेषताओं का उपयोग कर सकते हैं; वे गारंटी देते हैं कि ब्राउज़र के साथ कुछ भी न करें और वे पुराने ब्राउज़र में भी काम करेंगे।

जावास्क्रिप्ट में, आप सामान्य विशेषता गुणों के साथ इसे उपयोग कर सकते हैं:

var value = elem.getAttribute("data-foo") 
elem.setAttribute("data-foo", "value") 
elem.removeAttribute("data-foo") 
नए ब्राउज़र आप elem.dataset उपयोग कर सकते हैं के साथ

, लेकिन आप शायद करने के लिए नहीं करना चाहती है कि पुराने ब्राउज़र इसका समर्थन नहीं करेंगे के रूप में ।

var value = elem.dataset.foo; 
elem.dataset.foo = "value"; 
elem.dataset.foo = null; 
1

एचटीएमएल 5 अब supports डेटा- * विशेषताएं में सूचना के संचय लेकिन thats एचटीएमएल 5 और हर किसी को अभी तक वहाँ नहीं है। तो एक वास्तविक दुनिया परिदृश्य ...

यदि आपको पोस्ट बैक में लगातार बने रहने की चिंता करने की आवश्यकता नहीं है तो आप एक साधारण कुंजी के आधार पर सरल डेटा ऑब्जेक्ट्स को JSON संग्रह var के रूप में मैप कर सकते हैं और किसी ऑब्जेक्ट को किसी विशेष कुंजी के आधार पर खींच सकते हैं। लेकिन यह एक व्यापक दृष्टिकोण है - समग्र लक्ष्य पर अधिक जानकारी प्रतिक्रिया में सुधार करेगी।

1

इस बात पर निर्भर करता है कि आप किस प्रकार की जानकारी स्टोर करना चाहते हैं और आप इसे कैसे एक्सेस करने की योजना बना रहे हैं। मैंने id और class दोनों उदाहरणों के लिए डेटाबेस आईडी को स्टोर और एक्सेस करने के लिए सफलतापूर्वक उपयोग किया, और कुछ डेटाबेस टेबल के संदर्भ भी दिए, जिन्हें मैंने कुछ AJAX अनुरोध करने के लिए jQuery के साथ पुनर्प्राप्त किया।

यदि आप HTML5 का उपयोग नहीं कर रहे हैं, तो मैं आपके स्वयं के कस्टम विशेषताओं का उपयोग करने के खिलाफ सलाह दूंगा। अन्यथा, जैसे लोग पहले से ही मेरे सामने सुझाए गए हैं, data- प्रीफ़िक्स्ड विशेषताओं पर एक नज़र डालें।

0

डेटा- * यदि आप HTML5 का उपयोग कर सकते हैं तो जाने का तरीका है। आप उन्हें elem.data के साथ भी जावास्क्रिप्ट में आसानी से एक्सेस कर सकते हैं। *

अन्यथा, कस्टम विशेषताएँ पृष्ठ के अर्थशास्त्र को खराब करने से शायद बेहतर होती हैं।

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