2013-05-13 31 views
3

我使用boomerang.js監控我的網站真實用戶的網站性能。 http://lognormal.github.io/boomerang/doc/boomerang RT插件中的timeDone之間的區別vc導航時間頁面加載時間

它有一個RTPlugin http://lognormal.github.io/boomerang/doc/api/RT.html衡量timeDone(感知頁面加載時間)。

還有一個導航時機API,飛旋鏢支持瀏覽器支持導航時間。使用導航時間,我們可以通過計算頁面加載時間:

TOTALTIME = loadEventEnd - NavigationStart

https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html#processing-model

TOTALTIMEtimeDone是不同號碼時,我的數據看起來更緊密地和timeDone總是超過totalTime

我的問題是

  1. 這兩個一個是在加載頁面時,找出一個合適的指標?
  2. RT插件做什麼比導航時間捕獲更多?
  3. 什麼時候應該使用哪種度量標準,爲什麼?

感謝 注:Kunal

回答

1

很高興見到你在這裏:)

哪個號碼是正確的取決於你測量什麼。如果你正在測量何時發生火災並讓飛旋鏢自行發射事件,那麼這兩個數字通常是相同的,因爲Tdone使用上述相同的數學。看到這個代碼在完成()方法:

if(impl.navigationStart) { 
    t_start = impl.navigationStart; 
} 

https://github.com/lognormal/boomerang/blob/master/plugins/rt.js#L368

impl.navigationStart等於window.performance.navigationStart除了在情況下,當在一個navigationStart瀏覽器錯誤的結果是錯誤的或不存在。在這些情況下,迴旋鏢回落到其他值(更多細節參見來源)。

結束時間實際上是調用done()方法的時間。默認情況下,這在頁面的onload方法中被調用,但是你可以覆蓋它。

許多網站的頁面在onload事件觸發前都被認爲是「完整」(用戶可用),因此您可能想要在當時調用boomerang的BOOMR.page_ready方法。

類似地,一些網站在onload之後加載它們的所有內容,並且您可能要等到此時才調用page_ready。

最後一種情況是當Google Chrome將頁面預渲染時。在這種情況下,onload事件觸發,但該頁面不能被用戶使用。在捕獲時間之前,我們等待頁面從預渲染狀態轉移到可見狀態(在這種情況下,我們捕獲所有轉換)。

希望這回答你的問題。