网络编程 
首页 > 网络编程 > 浏览文章

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

(编辑:jimmy 日期: 2026/4/11 浏览:3 次 )
需求:统计用户页面某处的点击数或者执行到程序中某个点的次数
特点:根据实际情况,创建多个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=&apos;&apos;;
}
//必须严格按照以下的先后顺序:t,r,from,version
arr.push(&apos;t=&apos;+ (new Date()).getTime());
arr.push(&apos;r=&apos;+ref);
$(img).attr("src",url+ arr.join(&apos;&&apos;));
}
};
上一篇:javascript的字符串按引用复制和传递,按值来比较介绍与应用
下一篇:Javascript 加载和执行-性能提高篇
一句话新闻
微软与英特尔等合作伙伴联合定义“AI PC”:键盘需配有Copilot物理按键
几个月来,英特尔、微软、AMD和其它厂商都在共同推动“AI PC”的想法,朝着更多的AI功能迈进。在近日,英特尔在台北举行的开发者活动中,也宣布了关于AI PC加速计划、新的PC开发者计划和独立硬件供应商计划。
在此次发布会上,英特尔还发布了全新的全新的酷睿Ultra Meteor Lake NUC开发套件,以及联合微软等合作伙伴联合定义“AI PC”的定义标准。