javascript 利用Image对象实现的埋点(某处的点击数)统计


Posted in Javascript onDecember 28, 2012

需求:统计用户页面某处的点击数或者执行到程序中某个点的次数
特点:根据实际情况,创建多个Image对象,原则谁空闲谁做事。解决因过快发送埋点数据导致部分埋点缺失的问题。
实现:(注下面的代码依赖jQuery)

var Statistic= { 
arrImg:[], 
log:function(from){ 
//如果参数为空,则不处理 
if(typeof(from)=="undefined" || from=="") return; 
var me=this,img,imgHandler,arrImg,len=0,index=-1; 
arrImg=me.arrImg; 
len=arrImg.length; 
//查询可用的Image对象 
for(var i=0;i<len;i++){ 
if(arrImg[i].f==0){ 
index=i; 
break; 
} 
} 
//取出或者生成Image对象 
if(index==-1){ 
img=$(new Image()); 
arrImg.push({f:1,img:img}); 
index=(len==0?0:len); 
}else{ 
img=arrImg[index].img; 
} 
//标记Image对象为正在使用状态 
arrImg[index].f=1; 
//记录所使用的Image对象的位置 
img.data("vid",index); 
imgHandler = function(){ 
var vid=$(this).data("vid"); 
if(vid>=0){ 
arrImg[vid].f=0; 
} 
}; 
img.unbind().load(imgHandler).error(imgHandler); 
var arr = [],ref,url="http://z.ccccccc.com/beacon.gif?"; 
ref = document.referrer; 
if (ref) { 
ref=encodeURIComponent(ref); 
}else{ 
ref=''; 
} 
//必须严格按照以下的先后顺序:t,r,from,version 
arr.push('t='+ (new Date()).getTime()); 
arr.push('r='+ref); 
$(img).attr("src",url+ arr.join('&')); 
} 
};
Javascript 相关文章推荐
jQuery对象和DOM对象的相互转化实现代码
Mar 02 Javascript
javascript 数组学习资料收集
Apr 11 Javascript
js 复制或插入Html的实现方法小结
May 19 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
Jun 29 Javascript
jQuery实现当按下回车键时绑定点击事件
Jan 28 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
May 07 Javascript
js实现动画特效的文字链接鼠标悬停提示的方法
Mar 02 Javascript
JS延时器提示框的应用实例代码解析
Apr 27 Javascript
vue-router路由简单案例介绍
Feb 21 Javascript
利用Javascript开发一个二维周视图日历
Dec 14 Javascript
JavaScript动态加载重复绑定问题
Apr 01 Javascript
react实现换肤功能的示例代码
Aug 14 Javascript
Javascript 加载和执行-性能提高篇
Dec 28 #Javascript
javascript延时加载之defer测试
Dec 28 #Javascript
JavaScript(js)设置默认输入焦点(focus)
Dec 28 #Javascript
Javascript图像处理—平滑处理实现原理
Dec 28 #Javascript
js获取网页高度(详细整理)
Dec 28 #Javascript
前台js改变Session的值(用ajax实现)
Dec 28 #Javascript
window.open的页面如何刷新(父页面)上层页面
Dec 28 #Javascript
You might like
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
php中利用post传递字符串重定向的实现代码
2011/04/21 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
JavaScript 解析读取XML文档 实例代码
2009/07/07 Javascript
CSS和Javascript简单复习资料
2010/06/29 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
javascript的 {} 语句块详解
2016/02/27 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
原生JS实现几个常用DOM操作API实例
2017/01/19 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
2017/09/30 Javascript
深入浅析Vue.js中 computed和methods不同机制
2018/03/22 Javascript
vue 使某个组件不被 keep-alive 缓存的方法
2018/09/21 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
Vue移动端右滑屏幕返回上一页附源码下载
2019/06/26 Javascript
js实现弹窗效果
2020/08/09 Javascript
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
Python冲顶大会 快来答题!
2018/01/17 Python
Python iter()函数用法实例分析
2018/03/17 Python
Python多进程与服务器并发原理及用法实例分析
2018/08/21 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
Django框架模板用法入门教程
2019/11/04 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
2019/11/05 Python
python爬虫中PhantomJS加载页面的实例方法
2020/11/12 Python
结构工程研究生求职信
2013/10/13 职场文书
30年同学聚会邀请函
2014/01/25 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
《去年的树》教学反思
2014/04/11 职场文书
人事代理委托书
2014/09/27 职场文书
交通事故委托书范本
2014/09/28 职场文书
2015年部门工作总结范文
2015/03/31 职场文书
《卧薪尝胆》读后感3篇
2019/12/26 职场文书
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python