在微信上做一次推广活动,页面共计三个按钮,需要分别统计点击次数,pc上的相关统计用的是“百度统计”,因为H5活动页的时效性等原因,并没有使用百度统计,而是自己实现一个简单的统计小方案:前端点击时请求一个空白小gif图,带有参数,后端同事根据nginx请求日志做统计,通过在cookie中存入一个不会重叠的时间戳作为key值来区分是否同一用户(uv)。
这篇文章

时间戳用new Date().getTime()得出一个13位的“随机数”,精确到毫秒,但万一同一毫秒有两个以上用户点击呢?于是再严谨一些,用for循环在随机一个5位字符串拼接,这样的重复率绝对够用:

uid = new Date().getTime();
var randomNumber = '';
for(var i = 0 ; i < 5 ; i ++){
    randomNumber += new String (Math.floor(Math.random() * 10));
}
uid = uid + randomNumber;

下面是具体逻辑代码,当网页中已有请求图片时,更改url的参数也一样能从新发起一个get请求,避免每次点击都append一张图片。这种实现方法感觉比点击发送ajax更加方便。

statistics: function(position){
    var pic = "http://wx.daigj.com/notification/statistics/p.gif";
    var uid = util.readCookie("uid");
    var imgLength = $("#statistics-img").length;
    if(uid){
        if(imgLength == 0){
            $('body').append('<img >);
        }else{
            $("#statistics-img").attr("src",pic+"?u>position);
        }
    }else{
        uid = new Date().getTime();
        var randomNumber = '';
        for(var i = 0 ; i < 5 ; i ++){
            randomNumber += new String (Math.floor(Math.random() * 10));
        }
        uid = uid + randomNumber;
        util.createCookie("uid",uid);
        $('body').append('<img >);
    }
}

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-04-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-11
  • 2021-11-24
  • 2021-05-20
  • 2022-01-17
相关资源
相似解决方案