我需要在浏览器中生成唯一的ID。目前,我正在使用此:
Math.floor(Math.random() * 10000000000000001)
我想使用当前的UNIX时间((new Date).getTime()
),但是我担心如果两个客户端同时在exact上生成ID,它们将不是唯一的。
我可以使用当前的UNIX时间吗(我想这样做是因为id可以存储更多信息)?如果不是,什么是最好的方法(也许是UNIX时间+ 2个随机数字?)
您可以使用以下链接创建GUID:
https://github.com/broofa/node-uuid根据时间戳或随机号提供符合RFC的UUID。没有依赖性的单个文件,支持时间戳或基于#的随机UUID,并使用本机API来获得加密质量的随机数(如果有),以及其他好处。
在现代浏览器中,您可以使用crypto:
var c = 1;
function cuniq() {
var d = new Date(),
m = d.getMilliseconds() + "",
u = ++d + m + (++c === 10000 ? (c = 1) : c);
return u;
}
这是我的JavaScript代码,用于生成guid。它执行快速十六进制映射并且非常有效:
您始终可以针对集合中的现有ID进行测试,以递归地接受或拒绝所生成的随机数。
在客户端(假设此ID仅在客户端上有效!),我一直使用这样的东西