谷歌分析的网站速度功能 _gaq.push(['_trackPageLoadTime'])
是如何工作的?是否有关于它是如何工作的文档?
谷歌分析的网站速度功能 _gaq.push(['_trackPageLoadTime'])
是如何工作的?是否有关于它是如何工作的文档?
_trackPageLoadTime
函数已被弃用,并将其功能设置为默认设置。(从功能上讲,它已经从选择性功能变成了选择退出功能。)
_setSiteSpeedSampleRate
是设置此功能的采样率的新函数;其默认值为1
(即1%)。要选择退出使用站点速度功能,您必须向此函数传递0
:_gaq.push(["_setSiteSpeedSampleRate", 0]);
该报告目前支持以下浏览器:Chrome、Internet Explorer 9和安装有Google工具栏的先前版本的Internet Explorer。更具体地说,网站速度报告需要支持HTML5 NavigationTiming接口或安装了Google Internet Explorer工具栏的浏览器。
因此,它不像许多以前的家庭解决方案那样实现自己的计时器来计算页面加载所需的时间。相反,它使用一种新的HTML5功能,目前仅在上述列出的情况下受支持,称为NavigationTiming。
编辑:现在Firefox 7也支持此功能。
(重要的是要注意它不会在每次加载时都运行;相反,它目前对大约2%的页面浏览量进行采样,尽管它配置为尝试跟踪10%的访问中的所有页面加载;随着越来越多的浏览器支持NavigationTiming API,您可以期望总采样百分比开始接近10%。)
这个接口可以通过DOM对象window.performance
(或在早期版本的Chrome中,window.webkitPerformance
)访问,使用timing
属性(因此是window.performance.timing
)。该对象存储了所有关键页面加载事件时间的测量值,而Google Analytics会减去其中2个更重要的外部值来判断页面加载速度。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
}
loadEventStart-fetchStart
:h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);
_trackPageLoadTime
调用中记录4.14秒。对于好奇的人,顺序似乎如下所示:如果要使用HTTP GET或等效方式获取新资源,则fetchStart必须返回用户代理开始检查任何相关应用程序缓存之前的时间。否则,它必须在用户代理开始获取资源时返回时间。
此属性必须在当前文档的加载事件触发之前立即返回时间。当尚未触发加载事件时,它必须返回零。
对于列出的0值:connectStart、connectEnd、domainLookupStart、domainLookupEnd、fetchStart、navigationStart、requestStart、responseStart、domLoading、responseEnd、domContentLoadedEventStart、domInteractive、domContentLoadedEventEnd、domComplete、loadEventStart、loadEventEnd
unloadEventStart
和unloadEventStart
显示了上一个页面卸载的时间(但仅当该页面与当前页面具有相同的源时)。
redirectEnd
和redirectStart
测量了在页面加载链中存在HTTP重定向时添加的延迟。
secureConnectionStart
似乎是一种可选的测量SSL连接时间的方法。
secureConnectionStart
是一个标准的测量指标,但浏览器(或任何处理内容的程序)报告该指标是可选的。http://w3c-test.org/webperf/specs/NavigationTiming/#nt-secure-connect-start - Eric
_trackPageLoadTime
添加到队列中,然后在ga.js加载完成后按顺序依次触发该队列中的所有函数。这样可以安全地异步加载ga.js
。 - Yahel