<input type="button" value="Start Timer" onclick="timeTracker._recordStartTime();"/>
<input type="button" value="Stop Timer" onclick="timeTracker._recordEndTime();"/>
<input type="button" value="Track!" onclick="timeTracker._track(pageTracker, Category, 'Manual Test');"/>
这是一个内部事件跟踪代码(使用点击操作),我想实现类似这样的东西 “timeTracker._recordStartTime()在页面打开(加载)时启动 然后“timeTracker._recordEndTime()”和“timeTracker._track(pageTracker,category,'Manual Test')在用户离开页面时调用(通常导航到另一个页面)。
我的目标是将在页面上花费的时间记录为事件,并将其与其他事件(例如点击JavaScript事件)放在一起。
我该怎么做?
答案 0 :(得分:1)
您可以使用 window.performance.timing 对象来计算页面上的时间。 https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html#processing-model
首先,您应该将onunload事件处理程序绑定到您的身体,例如:
<body onunload="trackPageTime(event);">
...
</body>
然后,实现你的函数来计算时差并推送到_gaq对象。
<script type="text/javascript">
function trackPageTime(e){
var onPageSeconds = ((new Date()).getTime() - window.performance.timing.domInteractive) / 1000;
var gaps = [1,2,3,4,5,10,20,30,60,120,300,600];
for(var i=0;onPageSeconds>gaps[i] && i<gaps.length;i++);
_gaq.push(['_trackEvent', 'Time on Page', (document.location.pathname+document.location.search).toString(), gaps[i].toString()]);
}
</script>
您可以使用“计时”对象的不同属性来计算页面开启时间,例如 responseEnd (有些人可能会说更正确),但是,我发现 domInteractive 属性会给我更多近似结果。