目前遇到一个非常棘手的问题,关于网站流量监测的,而我对如何解决完全没有想法。。
我的js代码地址:http://blog.blacklee.net/uploads/tech/tracker.php
首先简单说一下网站流量监测的基本思路吧
类似于 Google-Analytics ,需要先在被监测网站埋放一个 javascript ,像 ga.js 这样的
这段 js 自动加载执行,读取各个需要的数据,比如 document.referrer 、 cookies 等
然后往 document.body 上添加一个 img 节点,把需要的数据往 img src 的参数里放,向监测服务器发出一个类似的请求:
http://www.google-analytics.com/__utm.gif?utmwv=4.9.1&utmn=176820245&utmhn=www.douban.com&utmcs=UTF-8&utmsr=1440x900&utmsc=24-bit&utmul=zh-cn&utmje=1&utmfl=10.2%20r153&utmdt=%E8%B1%86%E7%93%A3&utmhid=278583876&utmr=-&utmp=%2F&utmac=UA-7019765-1&utmcc=__utma%3D30149280.276662128.1294996086.1300933211.1301276680.16%3B%2B__utmz%3D30149280.1300933211.15.6.utmcsr%3Dtwitter.com%7Cutmccn%3D(referral)%7Cutmcmd%3Dreferral%7Cutmcct%3D%2F%3B&utmu=qBM
后监测服务端分析WEB访问日志,计算数据
我现在的情况是,用了一个 php 生成 javascript:地址 http://blog.blacklee.net/uploads/tech/tracker.php
另此 js 和发出的图片 1.gif ,是位于同一台机器上的
结果是对 tracker.php 这个 js 的请求,总比对 1.gif 这个图片的请求多30%~50%
而预期应该是两者持平的:
[root@centos5 nginx]# grep '/tracker.php' access_2011-03-24.log | wc -l
39660
[root@centos5 nginx]# grep '/1.gif' access_2011-03-24.log | wc -l
22050
在 js 里面,我试过用 img 和 iframe 加载图片,效果一样。也试过把 1.gif 改成 __utm.gif ,效果还是一样。。。
困扰多日了,求教。
问题补充
请求图片的地址,每次的参数都不一样,不会有缓存
而且,就算有缓存,WEB服务器的日志里也应当有记录,状态码是304
js加载后自动执行的方法,我也试了直接执行和
if (window.addEventListener) {
window.addEventListener('load', work, false);
} else if (window.attachEvent) {
window.attachEvent('onload', work);
}
这里面的work也就是调用了一个init和submit,没做其它的。
效果没大差别
还有就是,同一网页也放了其它的第三方监测代码,量子统计、百度统计、孔明统计,他们的数据就还好了
另:如何大致检测未加载完成便离开的用户呢?
问题补充
恩,谢谢。
你提到的这几个说法我以前没遇过,长知识了。
回头试验一下你给出的代码~
PS:我这代码目前是放在网页最底部而不在head里
另外我和朋友还试验出了一种情况
var img = new Image();
img.src = "http://xxx";
只设置完img的src后,浏览器(IE8,FF)就去发送请求了。。。
@int08h,你觉得用这个来做手脚靠谱么?