By fireworks2@foxmail.com
之前发过一篇介绍A链接的OnClick函数可能被打断的博文
这里补充介绍一个例子,就是A链接的点击流统计。
如果有一个A链接广告发布在页面上,想做点击统计,可以有两种方法。一种是在点击处进行上报,另一种则是在广告页面里进行上报。前一种做法是集中,便于管理,无论广告增加多少,也只需要在其投放处加统计;后一种方法相对分散,没添加一个广告,都要在其页面上做统计。真实情况是,往往两处都会有统计,当然目的有所区别。
这里着重讲一下第一种点击统计方法可能存在的问题,浏览器在当前页面地址发生变更时(如点击A链接,其href属性非锚定时),会撤销掉未完成的一些操作(如Ajax请求)。虽然在A链接的target为_blank时,当前页面其实不会发生改变,但浏览器仍会终止正在进行的一些JS、网络操作。
点击流统计一般是要访问一个CGI,但为了简单地实现跨大域,经常会使用img来实现。
var img = new Image();
img.src = '点击流CGI访问地址';
如果直接在 OnClick 里面执行上述语句,在点击A链接后,访问点击流CGI的请求可能会被取消。解决方法是:
1. 如果target是_blank,可以用window.open来打开广告
2. 如果是_self,就没什么好办法了,只好弄个定时器回调,在点击后延迟个几百毫秒(这功夫点击流访问已经结束就ok了)
阅读(4121) | 评论(0) | 转发(0) |