_gaq.push()如何工作?
Google Analytics网站速度function_gaq.push(['_trackPageLoadTime'])
工作? 有没有关于它如何工作的文档?
编辑 :截至2011年11月16日, _trackPageLoadTime
函数已被弃用,其function已被设置为默认设置 。 (从function上说,它已经从一个select退出function变成退出function。)
_setSiteSpeedSampleRate
是用于设置此function的采样率的新function; 其默认值是1
(如1%)。 要select不使用Site Speedfunction,必须将0
传递给此function:
_gaq.push(["_setSiteSpeedSampleRate", 0]);
来自Google Analytics帮助中心 :
此报告目前支持以下浏览器:Chrome浏览器,Internet Explorer 9以及安装了Google工具栏的Internet Explorer以前版本。 更具体地说,“网站速度”报告要求使用支持HTML5 NavigationTiming界面的浏览器,或者安装Google Internet Explorer工具栏
因此,它不像许多先前的回传解决scheme那样实现自己的计时器,以便计算加载页面需要多长时间。 相反,它使用了一个新的HTML5function,目前仅在上面列出的情况下才支持,名为NavigationTiming。
编辑 :现在在Firefox 7中支持
(需要注意的是,它不会在每一次加载时都运行;相反,它目前大约占浏览量的2%,尽pipe它被configuration为跟踪10%访问量的所有页面加载;随着更多的浏览器支持NavigationTiming API,你可以预期总采样百分比开始接近10%。)
这个接口在DOM对象window.performance
(或者在Chrome的早期版本, window.webkitPerformance
)下使用timing
属性(如window.performance.timing
)进行访问。 对象存储所有关键页面加载事件时间的测量值,Google Analytics(分析)会减去2个更重要的外部值来判断页面加载速度。
对于没有caching的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
调用中logging4.14秒 。
从W3C导航时序规范:
fetchStart属性
如果要使用HTTP GET或等价的方式获取新资源,则fetchStart必须在用户代理开始检查任何相关应用程序caching之前立即返回时间。 否则,它必须返回用户代理开始获取资源的时间。
loadEventStart属性
此属性必须返回当前文档的加载事件触发之前的时间。 当负载事件尚未被触发时,它必须返回零。
对于好奇的派对来说,sorting如下:
connectStart connectEnd domainLookupStart domainLookupEnd fetchStart navigationStart requestStart responseStart domLoading responseEnd domContentLoadedEventStart domInteractive domContentLoadedEventEnd domComplete loadEventStart loadEventEnd
对于列出的0值:
unloadEventStart
和unloadEventStart
显示上一次页面加载的卸载时间(但只有当该页面与当前页面具有相同的原点时)。
redirectEnd
和redirectStart
测量页面加载链中是否存在HTTPredirect时添加的延迟。
secureConnectionStart
似乎是测量SSL连接时间的可选测量。