पुस्तक सीखना jQuery का कहना है IE डोम एक समारोह को संदर्भित एक संपत्ति होने वस्तु के लिए स्मृति रिसाव है, और समारोह भी डोम वस्तु को संदर्भित है, इस प्रकार एक "परिपत्र संदर्भ" होने, इस तरह:इंटरनेट एक्सप्लोरर में, पृष्ठों से दूर नेविगेट करते समय भी स्मृति रिसाव क्यों रहती है?
onload = function() {
var foo = document.getElementById('foo');
foo.onclick = function() { // DOM object foo's onclick property refers to a function
foo.innerHTML = "hello" // the function's body refers to the DOM object
} // therefore circular reference
}
आईई कचरा संग्रह के लिए परिपत्र संदर्भों को संभाल सकता है, लेकिन जब सर्कुलर संदर्भों में डीओएम ऑब्जेक्ट और जावास्क्रिप्ट ऑब्जेक्ट दोनों शामिल नहीं होते हैं, क्योंकि उन्हें विभिन्न मेमोरी प्रबंधकों द्वारा नियंत्रित किया जाता है।
और:
[स्मृति रिसाव ... और] जिसके परिणामस्वरूप [संदर्भ] पाशन आईई द्वारा छोड़ा नहीं जा सकता जब भी हम पृष्ठ से निकल जाते।
ब्राउज़र बंद होने तक कभी भी मुक्त नहीं हुआ।
क्या यह सच है? जब कोई उपयोगकर्ता पृष्ठ छोड़ देता है तब भी IE उन स्मृति को क्यों जारी नहीं करता है? ऐसा इसलिए है क्योंकि उपयोगकर्ता Back
पर क्लिक कर सकता है और पृष्ठ पर वापस आ सकता है, और IE पृष्ठ की स्थिति रखना चाहेगा? उस स्थिति में, यदि उपयोगकर्ता मेमोरी लीक पेज पर है, और उसके बाद Back
पर क्लिक करता है, और फिर google.com पर जाता है? तो पृष्ठ किसी भी Back
या Forward
द्वारा देखने योग्य नहीं है, और ब्राउज़र को बंद किए बिना मेमोरी लीक समस्या दूर जा सकती है?
या ब्राउज़र बंद होने के बावजूद टैब बंद होने पर भी?
क्या इस तरह की मेमोरी रिसाव आईई 8 में भी होती है?
कई कार्यक्रमों मेमोरी लीक से समस्या निपटाने के लिए असफल जारी करने के लिए असफल के लिए संदर्भ होल्डिंग; और नए आईई संस्करणों में कई मेमोरी लीक प्लग किए गए हैं, लेकिन इन सभी को इस आकार की एक परियोजना में प्लग करना मुश्किल है। – Piskvor