Chinaunix首页 | 论坛 | 博客
  • 博客访问: 224474
  • 博文数量: 27
  • 博客积分: 1151
  • 博客等级: 少尉
  • 技术积分: 426
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-15 19:25
文章分类
文章存档

2012年(5)

2011年(6)

2010年(16)

我的朋友

分类: 系统运维

2012-08-12 14:15:03

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了)





阅读(4116) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~