javascript 之 事件统计,防重复统计

{app.params.name}} {app.params.name}} {app.params.name}}

事件统计防重复统计,不服来挑错

function track(eventName, params) {
  var img = new Image();
  if(typeof params == 'object') {
    params = JSON.stringify(params);
  } else {
    params = '';
  }
  var t = new Date().valueOf();
  var random = Math.random();
  var referrer = document.referrer;
  img.src = '/track?event='+encodeURIComponent(eventName)+'&params=' + encodeURIComponent(params) + '&t='+t+'&r='+random+'&referrer='+referrer;
}

后端将r值t值,外加一个ip的值,作为唯一的索引。为了做到数据准确到达,程序端少操作为主,这样会减少操作事件,将逻辑交给数据库操作了,增加数据到达率。

let insertEventSql = `REPLACE INTO ${config.mysql.prefix}xxxx.event_log 
                          (${keys.join(',')}) 
                          VALUES 
                          (${values.join(',')})`;



版权声明

durban 创作并维护的 Gowhich 博客采用 创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 Gowhich 博客( https://www.gowhich.com ),版权所有,侵权必究。

本文永久链接: https://www.gowhich.com/blog/773

comments powered by Disqus