如何计算页面停留时间 最近在做网站流量统计,碰到一个难题,如何计算网友在每个页面上的停留时间呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 onload和onunload两个方法吧,onload记录开始时间,onunload记录结束时间,然后ajax写入库 onunload 可以写在js文件中调用吗因为我不是直接写在网页上的 类似于51.la这样的流量统计 可以在任何网站调用 严格意义上说,现在的页面停留时间统计都不是十分准确。拿google的analytics来说,计算页面停留的方法是:访问一个页面,写入Cookie此时刻、当页面。跳转时,即访问页改变时,记录此时刻,两者之差就是页面停留时间。大概意思就是这样。cnzz也是这个实现的。function cnzz_hf(str) { var b = 37851; var a = 63689; var h = 0; var i = 0; for (i = 0; i < str.length; i++) { var tp = h + (a * (str.charAt(i).charCodeAt())) >> 2; if (tp) { h = tp; a += b; } } return h + '';}function gv_cnzz(of) { var es = document.cookie.indexOf(";", of); if (es == -1) es = document.cookie.length; return unescape(document.cookie.substring(of, es));}function gc_cnzz(n) { var arg = n + "="; var alen = arg.length; var clen = document.cookie.length; var i = 0; while (i < clen) { var j = i + alen; if (document.cookie.substring(i, j) == arg) return gv_cnzz(j); i = document.cookie.indexOf(" ", i) + 1; if (i == 0) break; } return -1;}var ed = new Date();var now = parseInt(ed.getTime());var data = '&r=' + escape(document.referrer.substr(0, 512)) + '&lg=' + escape(navigator.systemLanguage) + '&ntime=0.58106800 1250741268';var cnzz_a = gc_cnzz("cnzz_a1562522");if (cnzz_a != -1) cnzz_a = parseInt(cnzz_a) + 1;else cnzz_a = 0;var rt = parseInt(gc_cnzz("rtime"));var lt = parseInt(gc_cnzz("ltime"));var st = parseInt((now - lt) / 1000);var sin = gc_cnzz("sin1562522");if (sin == -1) sin = 'none';if (document.referrer.split('/')[2] != document.domain) sin = document.referrer;var h = cnzz_hf(document.location.href);var vw = gc_cnzz("vw1562522");var res = 0;if (vw != -1 && vw.length < 1024) { if (vw.indexOf(':' + h + ':') > -1) { res = 1; } else { vw += h + ':' } } else { vw = ':' + h + ':'; }var eid = gc_cnzz("cnzz_eid");if (eid == -1) eid = Math.floor(Math.random() * 100000000) + "-" + 1250741268 + "-" + document.referrer.substr(0, 64);if (lt < 1000000) { rt = 0; lt = 0; }if (rt < 1) rt = 0;if (((now - lt) > 500 * 86400) && (lt > 0)) rt++;data = data + '&repeatip=' + cnzz_a + '&rtime=' + rt + '&cnzz_eid=' + escape(eid) + '&showp=' + escape(screen.width + 'x' + screen.height) + '&st=' + st + '&sin=' + escape(sin.substr(0, 512)) + '&res=' + escape(res);document.write('<a href="http://www.cnzz.com/stat/website.php?web_id=1562522" target=_blank title="站长统计">站长统计</a>');document.write('<img src="stat.aspx?id=1562522' + data + '" border=0 width=0 height=0>');var et = (86400 - ed.getHours() * 3600 - ed.getMinutes() * 60 - ed.getSeconds());ed.setTime(now + 1000 * (et - ed.getTimezoneOffset() * 60));document.cookie = "cnzz_a1562522=" + cnzz_a + ";expires=" + ed.toGMTString() + "; path=/";document.cookie = "vw1562522=" + escape(vw) + ";expires=" + ed.toGMTString() + ";path=/";document.cookie = "sin1562522=" + escape(sin) + ";expires=" + ed.toGMTString() + ";path=/";ed.setTime(now + 1000 * 86400 * 182);document.cookie = "rtime=" + rt + ";expires=" + ed.toGMTString() + ";path=/";document.cookie = "ltime=" + now + ";expires=" + ed.toGMTString() + ";path=/";document.cookie = "cnzz_eid=" + escape(eid) + ";expires=" + ed.toGMTString() + ";path=/";这是cnzz跟踪代码的实现,希望有所帮助。google的太大了,就不贴了。老板让实现访问记录,页面停留时间因为太琐碎,没有加上。 http://topic.csdn.net/u/20091204/02/b7070000-405d-490a-8478-74fd14e0fd39.html 离开页面的时间onunload很多情况下都不会触发,比如多选项卡的浏览模式,还有电脑突然断点的情况下。希望有个完美的解决方案! C#.net,Javascript,AJAX,SilverLight,HTML5,CSS3,WPF,WCF,Win Phone技术交流群118907238! iis发布网站问题 最近学ASP.NET遇到的问题,高手来丫! IE6.0中,用asp.net做的一个页面,在一个div中的flash不显示 求救Session的用法 [散分]本人大作(目前为止),大家快来捧场 datagrid点击编辑后,datagrid控件消失了,急,在线等,谢了 访问注册表问题 treeview没有设置图片但是前面竟然有个不显示的图片问题 江湖救急,aspx.cs文件不见了,Why??? 后台代码中的字都变成灰色,不明白。。。 调试下面代码时出现‘阅读器关闭时尝试调用 FieldCount 无效’是哪出了问题? 分享一个我自己写的支持多条件组合查询的分页存储过程
onload记录开始时间,onunload记录结束时间,然后ajax写入库
因为我不是直接写在网页上的 类似于51.la这样的流量统计 可以在任何网站调用
严格意义上说,现在的页面停留时间统计都不是十分准确。拿google的analytics来说,计算页面停留的方法是:访问一个页面,写入Cookie此时刻、当页面。跳转时,即访问页改变时,记录此时刻,两者之差就是页面停留时间。大概意思就是这样。cnzz也是这个实现的。
function cnzz_hf(str) {
var b = 37851; var a = 63689; var h = 0; var i = 0;
for (i = 0; i < str.length; i++) {
var tp = h + (a * (str.charAt(i).charCodeAt())) >> 2; if (tp) { h = tp; a += b; }
}
return h + '';
}
function gv_cnzz(of) {
var es = document.cookie.indexOf(";", of);
if (es == -1) es = document.cookie.length;
return unescape(document.cookie.substring(of, es));
}
function gc_cnzz(n) {
var arg = n + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg) return gv_cnzz(j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return -1;
}
var ed = new Date();
var now = parseInt(ed.getTime());
var data = '&r=' + escape(document.referrer.substr(0, 512)) + '&lg=' + escape(navigator.systemLanguage) + '&ntime=0.58106800 1250741268';
var cnzz_a = gc_cnzz("cnzz_a1562522");
if (cnzz_a != -1) cnzz_a = parseInt(cnzz_a) + 1;
else cnzz_a = 0;
var rt = parseInt(gc_cnzz("rtime"));
var lt = parseInt(gc_cnzz("ltime"));
var st = parseInt((now - lt) / 1000);
var sin = gc_cnzz("sin1562522");
if (sin == -1) sin = 'none';
if (document.referrer.split('/')[2] != document.domain) sin = document.referrer;
var h = cnzz_hf(document.location.href);
var vw = gc_cnzz("vw1562522");
var res = 0;
if (vw != -1 && vw.length < 1024) { if (vw.indexOf(':' + h + ':') > -1) { res = 1; } else { vw += h + ':' } } else { vw = ':' + h + ':'; }
var eid = gc_cnzz("cnzz_eid");
if (eid == -1) eid = Math.floor(Math.random() * 100000000) + "-" + 1250741268 + "-" + document.referrer.substr(0, 64);
if (lt < 1000000) { rt = 0; lt = 0; }
if (rt < 1) rt = 0;
if (((now - lt) > 500 * 86400) && (lt > 0)) rt++;
data = data + '&repeatip=' + cnzz_a + '&rtime=' + rt + '&cnzz_eid=' + escape(eid) + '&showp=' + escape(screen.width + 'x' + screen.height) + '&st=' + st + '&sin=' + escape(sin.substr(0, 512)) + '&res=' + escape(res);
document.write('<a href="http://www.cnzz.com/stat/website.php?web_id=1562522" target=_blank title="站长统计">站长统计</a>');
document.write('<img src="stat.aspx?id=1562522' + data + '" border=0 width=0 height=0>');
var et = (86400 - ed.getHours() * 3600 - ed.getMinutes() * 60 - ed.getSeconds());
ed.setTime(now + 1000 * (et - ed.getTimezoneOffset() * 60));
document.cookie = "cnzz_a1562522=" + cnzz_a + ";expires=" + ed.toGMTString() + "; path=/";
document.cookie = "vw1562522=" + escape(vw) + ";expires=" + ed.toGMTString() + ";path=/";
document.cookie = "sin1562522=" + escape(sin) + ";expires=" + ed.toGMTString() + ";path=/";
ed.setTime(now + 1000 * 86400 * 182);
document.cookie = "rtime=" + rt + ";expires=" + ed.toGMTString() + ";path=/";
document.cookie = "ltime=" + now + ";expires=" + ed.toGMTString() + ";path=/";
document.cookie = "cnzz_eid=" + escape(eid) + ";expires=" + ed.toGMTString() + ";path=/";这是cnzz跟踪代码的实现,希望有所帮助。google的太大了,就不贴了。老板让实现访问记录,页面停留时间因为太琐碎,没有加上。