Javascript 推送(trackPageLoadTime';)是如何工作的?

Javascript 推送(trackPageLoadTime';)是如何工作的?,javascript,performance,html,google-analytics,Javascript,Performance,Html,Google Analytics,谷歌分析网站的Speed功能,\u gaq.push([''u trackPageLoadTime'])是如何工作的?有关于它如何工作的文档吗?编辑:截至2011年11月16日。(从功能上讲,它已经从选择加入功能转变为选择退出功能。) \u setSiteSpeedSampleRate是用于设置此功能的采样率的新功能;其默认值为1(如1%)。要退出使用此站点速度功能,您必须向此功能传递0: _gaq.push(["_setSiteSpeedSampleRate", 0]); 从: 此报告当前

谷歌分析网站的Speed功能,
\u gaq.push([''u trackPageLoadTime'])
是如何工作的?有关于它如何工作的文档吗?

编辑:截至2011年11月16日。(从功能上讲,它已经从选择加入功能转变为选择退出功能。)

\u setSiteSpeedSampleRate
是用于设置此功能的采样率的新功能;其默认值为
1
(如1%)。要退出使用此站点速度功能,您必须向此功能传递
0

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

从:

此报告当前支持 以下浏览器:Chrome、Internet Explorer 9和早期版本的 Internet Explorer和谷歌 工具栏已安装。更具体地说, 站点速度报告要求 支持HTML5的浏览器 NavigationTiming接口或具有 谷歌浏览器工具栏 安装

因此,它没有像以前的homeback解决方案那样实现自己的计时器来计算加载页面所需的时间。相反,它使用了一个新的HTML5功能,目前仅在上面列出的案例中支持,称为NavigationTiming

编辑:现在在中支持此功能

(需要注意的是,它并不是在每次加载时都运行;相反,它目前对大约2%的页面浏览量进行采样,尽管它被配置为在10%的访问量上尝试跟踪所有页面加载;随着越来越多的浏览器支持NavigationTiming API,您可以预期总采样百分比开始接近10%。)

此接口在DOM对象
window.performance
(或者在早期版本的Chrome中,
window.webkitPerformance
)下使用
timing
属性访问(因此,
window.performance.timing
)。该对象存储所有关键页面加载事件时间的测量值,Google Analytics减去2个更重要的外部值来判断页面加载速度

对于没有缓存的Mashable.com负载,下面是一个它测量的示例(在Chrome11中):

这些数字是历元毫秒,或自1970年1月1日以来的毫秒。我还没有看到任何文档说明它们减去哪些值来生成它们的值,但是从对的粗略检查来看,似乎是
loadEventStart fetchStart

h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);
对于上面的示例,这意味着它将在
\u trackPageLoadTime
调用中记录4.14秒

来自W3C导航计时规范:

如果新的 要使用HTTP获取资源 GET或等效项,fetchStart必须 返回事件发生前的时间 用户代理开始检查任何 相关应用程序缓存。 否则,它必须返回时间 当用户代理开始抓取时 资源

这个 属性必须返回时间 紧接着的负载事件之前 将激发当前文档的。信息技术 加载事件时必须返回零 他还没有被解雇

对于好奇的当事人,顺序如下:

连接开始,连接结束, domainLookupStart、domainLookupEnd、, fetchStart、navigationStart、, 请求启动,响应启动, 加载、响应、, domContentLoadedEventStart, 多米诺互动, DOMContentLoadedEventd,DOMPlete, loadEventStart,loadEventEnd

对于列出的0值:

unloadEventStart
unloadEventStart
显示上一页加载卸载的时间(但仅当该页与当前页具有相同的原点时)

redirectEnd
redirectStart
测量页面加载链中存在HTTP重定向时增加的延迟


secureConnectionStart
似乎是测量SSL连接时间的可选测量值

@stuken.yuri这是Google Analytics异步调用的语法。它的基本意思是:将函数(name)
\u trackPageLoadTime
添加到队列中,然后在加载ga.js后按顺序启动该队列中的所有函数。它可以让你安全地异步加载
ga.js
。你真是太棒了。感谢您如此详尽的回答。
secureConnectionStart
是一种标准的测量方法,但对于浏览器(或任何处理内容的工具)来说,报告是可选的。
h&&h[c]!=k&&h.isValidLoadTime?b=h[c]:e&&e[a]&&(b=e[a].loadEventStart-e[a].fetchStart);