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.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
Jul 28 Javascript
jQuery的slideToggle方法实例
May 07 Javascript
jQuery.parseJSON(json)将JSON字符串转换成js对象
Jul 27 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
Mar 03 Javascript
readonly和disabled属性的区别
Jul 26 Javascript
JavaScript实现url参数转成json形式
Sep 25 Javascript
jquery 实现回车登录详解及实例代码
Oct 23 Javascript
AngularJS过滤器filter用法总结
Dec 13 Javascript
概述一个页面从输入URL到页面加载完的过程
Dec 16 Javascript
详解JS中的this、apply、call、bind(经典面试题)
Sep 19 Javascript
js的各种数据类型判断的介绍
Jan 19 Javascript
JavaScript继承与聚合实例详解
Jan 22 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中的phpinfo()函数
2013/06/06 PHP
php常用的url处理函数总结
2014/11/19 PHP
php微信支付之APP支付方法
2015/03/04 PHP
php for 循环使用的简单实例
2016/06/02 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
js实现仿Windows风格选项卡和按钮效果实例
2015/05/13 Javascript
node.js使用cluster实现多进程
2016/03/17 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
JS 循环li添加点击事件 (闭包的应用)
2016/12/10 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
php register_shutdown_function函数详解
2017/07/23 Javascript
BootStrap导航栏问题记录
2017/07/31 Javascript
JS实现非首屏图片延迟加载的示例
2018/01/06 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
浅谈vue引用静态资源需要注意的事项
2018/09/28 Javascript
Vue使用NPM方式搭建项目
2018/10/25 Javascript
pytyon 带有重复的全排列
2013/08/13 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
Django框架实现逆向解析url的方法
2018/07/04 Python
django foreignkey(外键)的实现
2019/07/29 Python
详解Python用三种方式统计词频的方法
2019/07/29 Python
python filecmp.dircmp实现递归比对两个目录的方法
2020/05/22 Python
Python控制台实现交互式环境执行
2020/06/09 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
经济实惠的豪华背包和行李袋:Packs Project
2018/10/17 全球购物
房屋登记授权委托书范本
2014/10/09 职场文书
公司放假通知范文
2015/04/14 职场文书
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP