首先,在服务器端进行统计,我个人感觉应该不可以吧,因为http协议是无状态的,浏览器与服务器之间并不会建立持久连接。这意味着当一个客户端向服务器端发出请求,然后Web服务器返回响应,连接就被关闭了。
所以就无法在服务器端对用户访问某个页面的时长进行统计了,只能统计出某个用户访问某个页面的具体时间吧?
请问,该如何实现这个需求呢?
注:在不适用第三方流量统计器的情况下
var start = new Date(); //用户进入时间
var WINSYATEM = new Array( 'Win32' , 'Windows' ); //window系统名称
var systemtype = WINSYATEM.indexOf(navigator.platform) != -1 ? 'beforeunload' : 'pagehide';
window.addEventListener(systemtype, function(evt){
var end = new Date(); //用户退出时间
var times = end.getTime() - start.getTime();
times = Math.ceil(times / 1000); //取的是秒并且化整
//ajax...
}, false);
这样可以统计时长,但是老一点的浏览器兼容可能有问题,LZ可以测试一下。