2012-12-27 21 views
3

我正在測試大型網站的各種性能調整,我需要量化從初始加載到出現文檔元素(即繪製時間)需要多長時間。使用Chrome的開發人員分析器有沒有一種好的方法?有沒有確定性能的方法來衡量「繪畫時間」?

爲了澄清,我需要知道從加載到繪製頁面的總時間。

+0

加載和繪畫的時間。我會在這個問題上更加明確。 – bjork24

+0

這不就是DOM ready和'onload'之間的區別嗎? –

回答

2

你可以做以下兩件事之一: 1)使用Dan Mayor的方法。您可以簡單地在繪畫腳本的前後使用new Date().getTime,並將其減去以找出腳本完成的時間。但是,如果整個代碼滯後,這可能會滯後。這不一定是最準確的方法,但它可以完成工作。 (不過,你可以創建一個單獨的函數,計算獨立於其他腳本的時間。見下:)

function findTime(done){ 
if (done==false){var time1 = new Date.getTime();} 
if (done==true) {var time2 = new Date.getTime(); window.alert(time2-time1);} 
} 

哪裏done是劇本完成後,您將添加一個布爾參數。

2)Chrome有一個很好的開發人員控制檯,具有時間線功能。基本上,打開你的Chrome瀏覽器並點擊Command + Shift + C(控制+ shift + C for windows),然後點擊時間軸按鈕。然後,點擊控制檯底部的小圓點,它會變成紅色。刷新頁面,時間軸將開始收集腳本的各種時間數據。繪畫事件以綠色顯示。不幸的是,這是第三方解決方案。最後,由於滯後時間,不同的互聯網連接速度,處理器速度等不同,因此無法直接測量此時間。但是,這兩種方法與實際答案非常接近。您可能想要在不同的瀏覽器和計算機上測試腳本。

0

您可能希望查看「DOMContentLoaded」事件,這是jQuery綁定到的以提供.ready()方法的事件。基本的想法是你會想使用Date.getTime()來記錄毫秒值,第一個應該是你文檔的最後一行(對於html下載的標記)。第二個要在onload,DOMContentLoaded,加載和其他DOM就緒狀態事件之後調用。

簡單的例子(你的HTML輸出端):

<script type="text/javascript"> 
    window.downloadComplete = new Date().getTime(); 
    document.onload = function() { window.domParseComplete = new Date().getTime(); } 
    window.onload = function { window.renderComplete = new Date().getTime(); } 
    window.paintTime = window.renderComplete - window.downloadComplete; 
</script> 

在這個例子中window.downloadComplete將是毫秒時,DOM下載完成後,window.domParseComplete是當DOM被解析毫秒window.renderComplete是窗口報告渲染完成時的毫秒數。 window.paintTime是從這些毫秒時間計算的毫秒數。

+0

編輯我的答案,以包含我所建議的更直接的例子 – 2012-12-27 07:16:58

相關問題