2012-05-25 19 views
6

चलो कहते हैं कि मैं एक वर्ग के साथ अपने स्वयं के कैनवास है कि बनाएँ:अप्रयुक्त डीओएम तत्वों का क्या होता है?

this.canvas = document.createElement("canvas"); 

मुझे लगता है कि कैनवास का उपयोग करें, कुछ सामान, आदि आकर्षित है, लेकिन डोम पेड़ से कैनवास जोड़ने कभी नहीं। और जब मैं कर रहा हूं, तो मैं पूरी कक्षा का और अधिक उपयोग नहीं करूंगा।

तो जब मैं कैनवास का उपयोग करने वाली कक्षा हटा देता हूं, तो क्या कैनवास अभी भी स्मृति लेता है? क्या मुझे इसे किसी तरह से हटाना है?

या, एक सामान्य प्रश्न के रूप में: अप्रयुक्त तत्वों का क्या होता है जो डीओएम पेड़ में नहीं हैं या कभी नहीं (वेबसाइट में दिखाई नहीं दे रहे हैं)? क्या वे कचरा इकट्ठा करेंगे और/या आप प्रदर्शन को बढ़ाने के लिए थोड़ा सा गति दे सकते हैं?

+0

मुझे नहीं लगता कि ब्राउज़र कचरा इकट्ठा करेगा, क्योंकि यह कभी भी सुनिश्चित नहीं होगा कि आप इसे डोम में इंजेक्ट कर सकते हैं। –

+3

यदि वे अच्छे रहे हैं, या डोम नरक हैं तो वे डोम स्वर्ग में जाते हैं यदि वे बुरे हैं। – Ashe

+0

+1 मुझे मनोरंजक करने के लिए +1;) – TheSHEEEP

उत्तर

1

जैसा कि आपने पहले ही सही ढंग से स्वयं को नोट किया है, यह डीओएम पेड़ के बारे में नहीं है, यह & कचरा कलेक्टरों का संदर्भ देने वाली वस्तु के बारे में अधिक है।

जब आप बेस ऑब्जेक्ट में null द्वारा कक्षा को हटा/हटाते हैं, तो सभी आधुनिक संग्राहक आपकी देखभाल करेंगे। डोम में नोड डालने से आपको किसी भी छिपे हुए संदर्भों से डरने की ज़रूरत नहीं है। मैंने कई लोगों को <canvas> को null के संदर्भ में स्पष्ट रूप से सेट किया है, लेकिन मुझे लगता है कि यह शुद्ध IE8 परावर्तक है।

+0

अच्छा लगता है। जवाब के लिए धन्यवाद। मैंने बहुत अनुमान लगाया, लेकिन यह निश्चित होना बेहतर है :) – TheSHEEEP

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