簡體   English   中英

_gaq.push(['_trackPageLoadTime']) 是如何工作的?

[英]How does _gaq.push(['_trackPageLoadTime']) work?

Google Analytics 站點速度功能_gaq.push(['_trackPageLoadTime'])是如何工作的? 有沒有關於它如何工作的文檔?

編輯:截至 2011 年 11 月 16 日, _trackPageLoadTime function 已被棄用,其功能已設置為默認設置 (從功能上講,它已從選擇加入功能變為選擇退出功能。)

_setSiteSpeedSampleRate是新的 function 用於設置此功能的采樣率; 它的默認值為1 (如 1%)。 要選擇不使用此站點速度功能,您必須將0傳遞給此 function:

_gaq.push(["_setSiteSpeedSampleRate", 0]);

谷歌分析幫助中心

此報告目前支持以下瀏覽器:Chrome、Internet Explorer 9 和安裝了 Google 工具欄的 Internet Explorer 的早期版本。 更具體地說,站點速度報告需要支持 HTML5 NavigationTiming 界面或安裝了 Google Internet Explorer 工具欄的瀏覽器

因此,它沒有像許多以前的 homeback 解決方案那樣實現自己的計時器來計算頁面加載需要多長時間。 相反,它使用了一個新的 HTML5 功能,目前僅在上面列出的情況下支持,稱為 NavigationTiming。

編輯:現在Firefox 7支持此功能

(重要的是要注意,它並不是在每次加載時都運行;相反,它目前對大約 2% 的瀏覽量進行采樣,盡管它被配置為嘗試在 10% 的訪問中跟蹤所有頁面加載;隨着更多瀏覽器支持 NavigationTiming API,您可以預期總采樣百分比開始接近 10%。)

This interface is accessed under the DOM object window.performance (or, in earlier versions of Chrome, window.webkitPerformance ), using the timing attribute (so, window.performance.timing ). object 存儲所有關鍵頁面加載事件時間的測量值,Google Analytics 減去 2 個更重要的外部值來判斷頁面加載速度。

對於沒有緩存的 Mashable.com 負載,這是它測量的示例(在 Chrome 11 中):

timing = {
  connectEnd: 1306677079337,
  connectStart: 1306677079337,
  domComplete: 1306677083482,
  domContentLoadedEventEnd: 1306677081765,
  domContentLoadedEventStart: 1306677081576,
  domInteractive: 1306677081576,
  domLoading: 1306677079478,
  domainLookupEnd: 1306677079337,
  domainLookupStart: 1306677079337,
  fetchStart: 1306677079337,
  loadEventEnd: 1306677083483,
  loadEventStart: 1306677083482,
  navigationStart: 1306677079337,
  redirectEnd: 0,
  redirectStart: 0,
  requestStart: 1306677079394,
  responseEnd: 1306677079669,
  responseStart: 1306677079476,
  secureConnectionStart: 0,
  unloadEventEnd: 0,
  unloadEventStart: 0
}

這些數字是紀元毫秒,或自 1970 年 1 月 1 日以來的毫秒數。我沒有看到任何關於它們減去哪些值來生成它們的值的文檔,但是從對ga.js的粗略檢查來看,它看起來像是loadEventStart-fetchStart

h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);

對於上面的示例,這意味着它將在_trackPageLoadTime調用中記錄4.14 秒

來自 W3C 導航計時規范:

fetchStart 屬性

如果要使用 HTTP GET 或等效方法獲取新資源,則 fetchStart 必須立即返回用戶代理開始檢查任何相關應用程序緩存之前的時間。 否則,它必須返回用戶代理開始獲取資源的時間。

loadEventStart 屬性

此屬性必須返回觸發當前文檔的加載事件之前的時間。 當尚未觸發加載事件時,它必須返回零。

對於好奇的各方,排序似乎如下:

connectStart、connectEnd、domainLookupStart、domainLookupEnd、fetchStart、navigationStart、requestStart、responseStart、domLoading、responseEnd、domContentLoadedEventStart、domInteractive、domContentLoadedEventEnd、domComplete、loadEventStart、loadEventEnd

對於列出的 0 值:

unloadEventStartunloadEventStart顯示上一頁加載卸載的時間(但前提是該頁面與當前頁面具有相同的來源。)

如果頁面加載鏈中存在 HTTP 重定向, redirectEndredirectStart測量添加的延遲。

secureConnectionStart似乎是測量 SSL 連接時間的可選測量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM