SORU
21 EYLÜL 2012, Cuma


Eğer bir DOM Öğesi kaldırıldı, onun dinleyicileri de bellekten kaldırılır?

Eğer bir DOM Öğesi kaldırıldı, onun dinleyicileri bellekten de kaldırılır?

CEVAP
21 EYLÜL 2012, Cuma


Modern tarayıcılar

Düz JavaScript

Kaldırılmış olan bir DOM öğesi ise başvuru-bedava (referans işaret)Evet- çöp toplayıcı tarafından yakalandı kendisi unsuru olarak işleyicileri dinleyici/herhangi bir olay ile ilgili.

var a = document.createElement('div');
var b = document.createElement('p');
// Add event listeners to b etc...
a.appendChild(b);
a.removeChild(b);
b = null; 
// A reference to 'b' no longer exists 
// Therefore the element and any event listeners attached to it are removed.

Ancak; eğer hala dedi eleman için başvurular ise, unsur ve olay dinleyicilerini bellekte tutulur.

var a = document.createElement('div');
var b = document.createElement('p'); 
// Add event listeners to b etc...
a.appendChild(b);
a.removeChild(b); 
// A reference to 'b' still exists 
// Therefore the element and any associated event listeners are still retained.

bir WordPress kullanmak

O-cekti var olmak adil üstlenen ilgili yöntemleri jQuery (remove()) işlevi tam olarak aynı şekilde düşünen remove() yazılmış kullanma removeChild() örneğin).

Ancakbu doğru değil; jQuery kütüphane aslında bir iç yöntemi (belgesiz ve teoride olabilir değişti herhangi bir zamanda) adlı cleanData() (here is what this method looks likehangi otomatik olarak temizler tüm veri/olaylar ile ilişkili bir öğe üzerinde karar vermesi için DOM (bu). *, , * empty()html("")8 vb).


Eski tarayıcılar

Eski tarayıcılar - YANİ özellikle eski sürümleri olay dinleyicileri bağlı oldukları öğeleri başvuruları ele tutarak nedeniyle bellek sızıntısı sorunları olduğu bilinmektedir.

Eğer detaylı açıklama nedenleri, desenleri ve çözümleri bir daha eski IE sürümü bellek sızıntıları düzeltmek için kullanılan istiyorsan, ben this MSDN article on Understanding and Solving Internet Explorer Leak Patterns. okumak tamamen tavsiye

Bu birkaç ilgili makaleler:

El ile dinleyicilerini kaldırma muhtemelen bu durumda içine almak için iyi bir alışkanlık bellek uygulama için önemlidir ve aslında bu tür tarayıcıların yönlendirilmesi) olurdun.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jesse Pimenta

    Jesse Piment

    5 EKİM 2011
  • Roger Huffman

    Roger Huffma

    4 ŞUBAT 2007
  • soyacincautv

    soyacincautv

    14 NİSAN 2010