事件统计防重复统计,不服来挑错
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)+'¶ms=' + 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(',')})`;
时间: 2024-09-23 10:08:11