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

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

1
2
3
4
5
6
7
8
9
10
11
12
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的值,作为唯一的索引。为了做到数据准确到达,程序端少操作为主,这样会减少操作事件,将逻辑交给数据库操作了,增加数据到达率。

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