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 相关文章推荐
火狐浏览器(firefox)下获得Event对象以及keyCode
Nov 13 Javascript
关于js中alert弹出窗口文本换行问题简单详细说明
Dec 11 Javascript
Angular动态添加、删除输入框并计算值实例代码
Mar 29 Javascript
jquery实现提示语淡入效果
May 05 jQuery
Angular4学习笔记之新建项目的方法
Jul 18 Javascript
Angularjs实现页面模板清除的方法
Jul 20 Javascript
js限制输入框只能输入数字(onkeyup触发)
Sep 28 Javascript
CKeditor4 字体颜色功能配置方法教程
Jun 26 Javascript
详解Vuex下Store的模块化拆分实践
Jul 31 Javascript
使用xampp将angular项目运行在web服务器的教程
Sep 16 Javascript
JavaScript交换两个变量方法实例
Nov 25 Javascript
node koa2 ssr项目搭建的方法步骤
Dec 11 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
phpQuery让php处理html代码像jQuery一样方便
2015/01/06 PHP
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
中文字符串截取的js函数代码
2013/04/17 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
JavaScript给按钮绑定点击事件(onclick)的方法
2015/04/07 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
详解nodejs与javascript中的aes加密
2016/05/22 NodeJs
JavaScript数组方法大全(推荐)
2016/07/05 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
微信小程序 wx.request(object) API详解及实例代码
2016/09/30 Javascript
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
swiper动态改变滑动内容的实现方法
2018/01/17 Javascript
Bootstrap Table实现定时刷新数据的方法
2018/08/13 Javascript
vue2 中二级路由高亮问题及配置方法
2019/06/10 Javascript
微信小程序 可搜索的地址选择实现详解
2019/08/28 Javascript
vue-cli和v-charts实现可视化图表过程解析
2019/10/08 Javascript
Vuex,iView UI面包屑导航使用扩展详解
2019/11/04 Javascript
将Vue组件库更换为按需加载的方法步骤
2020/05/06 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
Python引用(import)文件夹下的py文件的方法
2014/08/26 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
Python贪心算法实例小结
2018/04/22 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
Python datetime和unix时间戳之间相互转换的讲解
2019/04/01 Python
使用Python进行防病毒免杀解析
2019/12/13 Python
python实现打砖块游戏
2020/02/25 Python
python3中编码获取网页的实例方法
2020/11/16 Python
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
L’Artisan Parfumeur官网:法国香水品牌
2020/08/11 全球购物
财务副总经理工作职责
2013/11/25 职场文书
大专生毕业的自我评价
2014/02/06 职场文书
信访工作经验交流材料
2014/05/23 职场文书
聘任证明怎么写
2015/03/02 职场文书
检察院起诉意见书
2015/05/20 职场文书
民间借贷被告代理词
2015/05/23 职场文书
centos8安装MongoDB的详细过程
2021/10/24 MongoDB