2014-05-08 25 views
10

Bir kodun en pahalı olanları hakkında bir fikir edinmek için tarayıcıları reflow-events dinlemeye çalışıyorum. Yeniden tarama, bir şey (örneğin) DOM'a yeni eleman eklendiğinde, ekrana çizildiğinde (yeniden) olduğunda oluşur.Dinleme tarayıcı yeniden akış olayı

Daha fazla analiz için örn. Javascript ile/gibi thease olaylarını dinlemenin bir yolu var mı?

+1

Bu kaldırıldığını ve yaygın olarak desteklenen asla DOM mutasyon olayları, benzer olacağını olduğunu. Bence tarayıcının profil özelliklerini kullanmalısın. – Barmar

+0

Chromes dev araçlarına bir göz atın: http://addyosmani.com/blog/performance-optimisation-with-timeline-profiles/ – superUntitled

+2

Ancak kod içinde bunu yapmanın bir yolu var mı? – Tohveli

cevap

6

DOM MutationObserver sınıfını kullanmanın bir çözüm olduğunu düşünüyorum. Dokümanların işaret ettiği gibi:

DOM3 Olayları belirtiminde tanımlanan Mutasyon Olaylarının yerine geçecek şekilde tasarlanmıştır. Api Docs

sitesinde örnek hoş kendi açıklayıcı

// select the target node 
var target = document.querySelector('#some-id'); 

// create an observer instance 
var observer = new MutationObserver(function(mutations) { 
    mutations.forEach(function(mutation) { 
    console.log(mutation.type); 
    });  
}); 

// configuration of the observer: 
var config = { attributes: true, childList: true, characterData: true }; 

// pass in the target node, as well as the observer options 
observer.observe(target, config); 

// later, you can stop observing 
observer.disconnect(); 
İlgili konular