生成客户端唯一ID的最佳方法(使用Javascript)

问题描述 投票:16回答:7

我需要在浏览器中生成唯一的ID。目前,我正在使用此:

Math.floor(Math.random() * 10000000000000001)

我想使用当前的UNIX时间((new Date).getTime()),但是我担心如果两个客户端同时在exact上生成ID,它们将不是唯一的。

我可以使用当前的UNIX时间吗(我想这样做是因为id可以存储更多信息)?如果不是,什么是最好的方法(也许是UNIX时间+ 2个随机数字?)

javascript jquery
7个回答
16
投票

您可以使用以下链接创建GUID:


9
投票

https://github.com/broofa/node-uuid根据时间戳或随机号提供符合RFC的UUID。没有依赖性的单个文件,支持时间戳或基于#的随机UUID,并使用本机API来获得加密质量的随机数(如果有),以及其他好处。


4
投票

在现代浏览器中,您可以使用crypto


1
投票
var c = 1;
function cuniq() {
    var d = new Date(),
        m = d.getMilliseconds() + "",
        u = ++d + m + (++c === 10000 ? (c = 1) : c);

    return u;
}

1
投票

这是我的JavaScript代码,用于生成guid。它执行快速十六进制映射并且非常有效:


0
投票

您始终可以针对集合中的现有ID进行测试,以递归地接受或拒绝所生成的随机数。


0
投票

在客户端(假设此ID仅在客户端上有效!),我一直使用这样的东西

© www.soinside.com 2019 - 2024. All rights reserved.