Javascript时间戳编号不是唯一的

Javascript timestamp number is not unique

本文关键字:唯一 时间戳 编号 Javascript      更新时间:2023-09-26

我需要生成一个唯一的数字,以便在代码中使用。我使用

var id = new Date().valueOf()

我知道上面返回的是毫秒数。但这些价值观并不是唯一的。例如:1385035174752。此数字生成两次或两次以上。

我的问题是为什么它不是独一无二的?如何从当前日期/时间中获取唯一编号?

如果需要唯一性,请使用Math.random()而不是任何Date() API。

CCD_ 3返回一个介于0和1之间(包括0和1)的整数。如果确实需要基于当前时间的半唯一编号,则可以将Date API与Math.random结合使用。例如:

var id = new Date().getTime() + Math.random();

在现代浏览器中,您还可以使用performance.now()。这个API保证每个新调用的返回值都是唯一的。

在Windows上,计时器的分辨率约为10.5毫秒。因此,即使在几毫秒后,您也有机会获得相同的值。当然,还有更好的定时器,但AFAIK JavaScript无法使用它们。

example.Eeven performance.now()有时也不会给出唯一的数字。你必须制作自己的系统来生成它。比如制作一个计数器,每次访问时将其增加1。