2015-08-16 61 views
4

我正在嘗試調試具有多個主幹視圖的HTML頁面呈現的瓶頸。我使用了Chrome開發工具的時間軸分析器,並看到了大量的分析HTML事件。我的問題是:在什麼情況下調用Parse HTML事件?

這是否意味着每次都觸及DOM,或者是在分離的jquery對象中操作HTML時觸發的Parse HTML事件?

回答

2

聲明:除了它是一個框架,我對骨幹一無所知。

可以意味着每次觸及DOM但它並不一定需要。當你正在加載HTML文件,以及當你在玩這些innerHTMLouterHTMLinnerTextinsertAdjacentHTMLDOMParser接口時,你會明顯觸發解析事件,但這些只是冰山一角。很多東西會觸發解析HTML事件。

例如:

setInterval(function(){ 
    var parser = new DOMParser(); 
    parser.parseFromString('<p>lorem</p>','text/html'); 
},5000); 

這將觸發HTML解析器每5秒,但它不會觸及DOM。 但是,當您使用例如document.body.innerHTML = '<p>Hello</p>' 您將觸發解析事件以及觸摸DOM。 因此,即使您沒有直接觸摸DOM,也可以解析事件。

+0

如何創建一個jQuery元素並在DOM之外進行操作?例如:'''$('

').append('')''' – liorbrauer

+1

這將只會觸發解析HTML事件,但不會觸及活動DOM結構。你只是創建了一些在內存中浮動的東西。我不確定在封面(可能是文檔片段)下使用了什麼jQuery,但開發工具只顯示HTML分析器活動。但是,如果您決定將此添加到活動DOM,那麼您將觸發瀏覽器需要執行的一系列事件,以大致按此順序將其渲染到屏幕上 - 評估腳本,解析HTML,重新計算樣式,佈局,繪畫和合成。 – Ogalb

相關問題