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获取元素文档大小、偏移和位置和滚动条位置的方法集合
Jan 12 Javascript
JS 按钮点击触发(兼容IE、火狐)
Aug 07 Javascript
js创建元素(节点)示例
Jan 02 Javascript
BootStrap扔进Django里的方法详解
May 13 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
May 23 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
Jun 03 Javascript
bootstrap中模态框、模态框的属性实例详解
Feb 17 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
Sep 30 Javascript
JavaScript实现单例模式实例分享
Dec 22 Javascript
element-ui table span-method(行合并)的实现代码
Dec 20 Javascript
VUE简单的定时器实时刷新的实现方法
Jan 20 Javascript
vue中的mvvm模式讲解
Jan 31 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
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
PHP进阶学习之Geo的地图定位算法详解
2019/06/19 PHP
Alliance vs Liquid BO3 第三场2.13
2021/03/10 DOTA
Javascript-Mozilla和IE中的一个函数直接量的问题分析
2007/08/12 Javascript
限制复选框最多选择项的实现代码
2016/05/30 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
JavaScript代码实现简单计算器
2020/12/27 Javascript
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
详解使用pymysql在python中对mysql的增删改查操作(综合)
2017/01/18 Python
TensorFlow如何实现反向传播
2018/02/06 Python
python实现整数的二进制循环移位
2019/03/08 Python
python实现抽奖小程序
2020/04/15 Python
python爬虫 urllib模块发起post请求过程解析
2019/08/20 Python
python自动保存百度盘资源到百度盘中的实例代码
2019/08/26 Python
使用python动态生成波形曲线的实现
2019/12/04 Python
python每5分钟从kafka中提取数据的例子
2019/12/23 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
中国制造网:Made-in-China.com
2019/10/25 全球购物
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
求职意向书范文
2014/04/01 职场文书
企业活动策划方案
2014/06/02 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python