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 相关文章推荐
获取Javscript执行函数名称的方法
Dec 22 Javascript
JavaScript定义类或函数的几种方式小结
Jan 09 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
Apr 05 Javascript
JavaScript基础知识学习笔记
Dec 02 Javascript
使用javascript实现简单的选项卡切换
Jan 09 Javascript
javascript数据类型示例分享
Jan 19 Javascript
AngularJS快速入门
Apr 02 Javascript
对于jQuery性能的一些优化建议
Aug 13 Javascript
实例讲解jquery与json的结合
Jan 07 Javascript
iSlider手机端图片滑动切换插件使用详解
Dec 24 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
Aug 31 Javascript
vue配置多代理服务接口地址操作
Sep 08 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的ZipArchive类用法实例
2014/10/20 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
TP3.2框架分页相关实现方法分析
2020/06/03 PHP
jscript之List Excel Color Values
2007/06/13 Javascript
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
判断JavaScript对象是否可用的最正确方法分析
2008/10/03 Javascript
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
2016/05/24 Javascript
Vuex简单入门
2017/04/19 Javascript
JavaScript实现图片切换效果
2017/08/12 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
JS实现点击掉落特效
2021/01/29 Javascript
js实现验证码干扰(动态)
2021/02/23 Javascript
python 性能提升的几种方法
2016/07/15 Python
Python常见字典内建函数用法示例
2018/05/14 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
Jacadi Paris美国官方网站:法国童装品牌
2017/10/15 全球购物
大三自我鉴定范文
2013/10/05 职场文书
市场营销专业推荐信
2013/11/03 职场文书
旅游网创业计划书
2014/01/31 职场文书
班长自荐书范文
2014/02/11 职场文书
法定授权委托证明书
2014/09/27 职场文书
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
区域经理岗位职责
2015/02/02 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫
vue实力踩坑之push当前页无效
2022/04/10 Vue.js