2014-05-08 4 views
10

मैं यह जानने के लिए ब्राउज़र के reflow-events सुनने की कोशिश कर रहा हूं कि कोड के कौन से हिस्से सबसे महंगे हैं। रेफ्लो तब होता है जब स्क्रीन पर कुछ (पुनः) खींचा जाना चाहिए, उदाहरण के लिए जब नया तत्व डोम में जोड़ा जाता है।ब्राउज़र रीफ्लो ईवेंट सुनना

आगे विश्लेषण के लिए जावास्क्रिप्ट के साथ/उदाहरण के लिए घटनाओं को सुनने का कोई तरीका है?

+1

यह डोम उत्परिवर्तन घटनाओं, जिसका बहिष्कार कर रहे हैं और व्यापक रूप से समर्थित कभी नहीं थे करने के समान होगा है। मुझे लगता है कि आपको ब्राउज़र की प्रोफाइलिंग सुविधाओं का उपयोग करना चाहिए। – Barmar

+0

क्रोम देव उपकरण पर एक नज़र डालें: http://addyosmani.com/blog/performance-optimisation-with-timeline-profiles/ – superUntitled

+2

लेकिन क्या कोड के अंदर ऐसा करने का कोई तरीका है? – Tohveli

उत्तर

6

मुझे लगता है कि यह समाधान DOM MutationObserver क्लास का उपयोग करने के लिए है। डॉक्स के रूप में बाहर बिंदु:

यह उत्परिवर्तन घटनाक्रम DOM3 घटनाक्रम विनिर्देश में परिभाषित के लिए एक स्थानापन्न के रूप में बनाया गया है। Api Docs

साइट पर उदाहरण सुंदर आत्म व्याख्यात्मक

// 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(); 
संबंधित मुद्दे