我想记录网站上的流量。在每次点击时,我想生成一个唯一的ID,并将其存储在数据库中。 为了生成唯一的ID,我编写了下面的代码,但有时会在数据库中得到相同的条目。
timingVar = 'load_'+Date.now()+'_'+uniqueid();
//function used to generate unique number//
function uniqueid() {
var ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
var ID_LENGTH = 8;
var rtn = '';
for (var i = 0; i < ID_LENGTH; i++) {
rtn += ALPHABET.charAt(Math.floor(Math.random() * ALPHABET.length));
}
return rtn;
}
Date.now
,因此需要在完全相同的时间进行两个请求并获得相同的随机数?这是不太可能的(但有可能,这就是为什么您应该查看TJCrowder的链接)。然而,即使您拥有真正唯一的ID,您仍然会在数据库中获得重复项。也就是说,这是另一个XY问题吗?您是否还记录IP地址?重复项来自同一IP吗?最重要的是,您的timingVar
是全局的吗?(如问题所述)。 - freedomn-m