2013-06-04 9 views
5

पेज में एक div की तरह एक तत्व को देखते हुए यह आवश्यक हटाने के लिए बाध्य वस्तु साफ करने के लिए है, और मैं इस तरह यह करने के लिए किसी वस्तु जोड़ें:जब एक तत्व

div.data=data; 

अब, जब मैं दूर करने की कोशिश div तत्व, क्या इसे हटाने से पहले अपने डेटा को शून्य में सेट करना आवश्यक है?


अद्यतन:

वास्तव में, मैं सर्वर से डेटा लाने, तो मैं (सूची से पहले, मैं पुराने ememetns निकाल देंगे इस तरह यह सूची जाएगा:

var data=[{name:'xx'},{name:'yy'}...]; 

var resultDiv=document.getElementById("result"); 
resultDiv.innerHTML=""; //clear the old items 
for(var i=0,len=data.length;i<len;i++){ 
    var div=document.createElement("div"); 
    div.data=data[i]; 
    resultDiv.appendChild(div); 
} 
.... 
+0

'डेटा' क्या है इस पर निर्भर करता है। पुराने ब्राउजर, विशेष रूप से आईई में मेमोरी रिसाव की समस्याएं थीं, यदि डेटा में div के परिपत्र संदर्भ होते हैं (जिसमें आपके पास फ़ंक्शंस होने पर बंद चर शामिल हैं!) – Bergi

+0

जेएस रनटाइम इन दिनों कचरा कलेक्टर का उपयोग करना चाहिए, इसलिए मैं नहीं कहूंगा। समस्या चारों ओर दूसरी तरफ होने की संभावना है - डीओएम तत्वों से जुड़े किसी भी डेटा को हटाए जाने पर स्मृति में रहेगा। – millimoose

+0

@ मिलिमोस: जेएस रनटाइम ने हमेशा शुरुआत के बाद से कचरा कलेक्टर का उपयोग किया है (एनएस 2.0)। समस्या आईई के पुराने संस्करणों में कचरा कलेक्टर की गणना करने वाले संदर्भ का उपयोग किया जाता है जो परिपत्र संदर्भों को संभाल नहीं सकता है। – slebetman

उत्तर

-1

नहीं जब आप div को हटाते हैं तो कोई तत्व नहीं है जिसके पास div.data तक पहुंच है। इसलिए इसकी अपरिवर्तित स्मृति और इसे साफ़ करने के लिए कचरा कलेक्टर का काम है।

हालांकि कचरा संग्रह आपके ऊपर है अनिश्चित समय। कचरा संग्रह के कार्य में समय लगता है।

+0

संदर्भ को हटाने से अभी भी कचरा कलेक्टर शुरू नहीं होता है। फिर 'डेटा' न केवल पहुंच योग्य होगा, बल्कि दो बार पहुंच योग्य नहीं होगा। – Bergi

+0

@ बर्गि आप सही हैं: http://perfectionkills.com/understanding-delete/ – basarat

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