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

  • Ama Jenna

    Ama Jenna

    29 NİSAN 2011
  • Bigapplemagic

    Bigapplemagi

    22 EYLÜL 2011
  • UKF Dubstep

    UKF Dubstep

    29 NİSAN 2009