2014-05-08 13 views
10

Próbuję słuchać przeglądarek reflow-events, aby dowiedzieć się, które części kodu są najdroższe. Przepływ pojawia się, gdy coś musi zostać (ponownie) narysowane na ekranie, na przykład kiedy nowy element zostanie dodany do DOM.Odsłuchanie zdarzenia odtwarzania przeglądarki

Czy istnieje sposób, aby słuchać zdarzeń thease na przykład w/z Javascriptem, do dalszej analizy?

+1

ten byłby podobny do DOM zdarzeń mutacji, które są przestarzałe i nigdy nie były szeroko wspierane. Myślę, że powinieneś używać funkcji profilowania przeglądarki. – Barmar

+0

Zapoznaj się z narzędziami narzędziowymi chromes: http://addyosmani.com/blog/performance-optimisation-with-timeline-profiles/ – superUntitled

+2

Ale czy jest jakiś sposób, aby to zrobić wewnątrz kodu? – Tohveli

Odpowiedz

6

Myślę, że rozwiązaniem jest użycie klasy DOM MutationObserver. Zgodnie z dokumentami:

Został zaprojektowany jako zamiennik zdarzeń mutacji zdefiniowanych w specyfikacji zdarzeń DOM3. Api Docs

Przykładem na miejscu jest dość wymowne

// 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(); 
Powiązane problemy