2012-02-11 17 views
8

क्या यह गलत है? यदि ऐसा है तो क्यों?डोम तत्वों में कस्टम डेटा संग्रहीत करना

var elm = document.getElementById("myElm"); 
elm.customValue = {attr1 : "test", attr2 : "test"}; 

मैं समझता हूं कि डेटा विशेषताओं का उपयोग कैसे करें, लेकिन मैं उन सभी विशेषताओं के साथ अपने डोम को गड़बड़ नहीं करना चाहता हूं।

उत्तर

6

यह कुछ ब्राउज़रों में मेमोरी रिसाव पेश करता है क्योंकि आप मूल सी ऑब्जेक्ट (डीओएम तत्व) और एक जेएस ऑब्जेक्ट को एकसाथ बांधते हैं और कुछ कचरा संग्रह एल्गोरिदम इस से निपट नहीं सकते हैं। आईई उनमें से एक है। http://msdn.microsoft.com/en-us/library/ie/bb250448(v=vs.85).aspx

+6

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

+0

अच्छा नोट! मैं यह उल्लेख करना भूल गया था कि आपको रिसाव के लिए तत्व को हटाने की आवश्यकता है। –

+0

शानदार इनपुट लोग! धन्यवाद! –

2

आप एचटीएमएल 5 डेटा विशेषताओं पर विचार करना चाहिए:

यहाँ आईई मेमोरी लीक के बारे में एक MSDN लेख है।

आदमी खुद से: http://ejohn.org/blog/html-5-data-attributes/

3

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

कोई बात नहीं है कि तत्वों के लिए कस्टम गुण जोड़ना जो पहले से परिभाषित गुण हैं, आपके कोड को रखरखाव दुःस्वप्न बनाता है। चाहे वह आप या भविष्य में इसे बनाए रखने वाला कोई और व्यक्ति है, वहां "wtf" पल होगा जहां डेवलपर बाहर निकलने की कोशिश कर रहा है यदि ए) तत्व में एक कस्टम संपत्ति जोड़ा गया था या बी) तत्व वास्तव में वास्तव में है कस्टम वस्तु।

अंत में, क्या होगा यदि उस तत्व को अमेक्स या गतिशील HTML के माध्यम से डोम में बदल दिया गया हो? अब संपत्ति चली गई है और आपका कोड टूटा हुआ है।

+3

आप जो भी कह रहे हैं उनमें से कोई भी कोई समझ नहीं आता है ... –

+0

क्या समझ में नहीं आता है? –

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