javascript - 这是一个唯一的 id 生成器可靠地始终是唯一的吗?
问题描述
想知道这个功能是否可靠并且始终是唯一的,还想知道我应该在本地还是在服务器上执行此操作?
function IDGenerator() {
this.length = 8;
this.timestamp = +new Date;
var _getRandomInt = function( min, max ) {
return Math.floor( Math.random() * ( max - min + 1 ) ) + min;
}
this.generate = function() {
var ts = this.timestamp.toString();
var parts = ts.split( "" ).reverse();
var id = "";
for( var i = 0; i < this.length; ++i ) {
var index = _getRandomInt( 0, parts.length - 1 );
id += parts[index];
}
return id;
}
}
解决方案
因为不能在同一台机器上同时生成两个时间戳。
由同一台机器生成并在同一台机器内生成 - 单独的时间戳 - 保证是唯一的。
推荐阅读
- javascript - 如何在 twitter 上运行的 chrome 扩展中发出 POST 请求?
- javascript - HTML/JavaScript:如何舍入具有只读选项的输入 type=number 中的值
- networking - 无法从一个实例到达另一个实例
- python - Discord.py 删除自定义表情符号
- react-native - react-native-paper 中的按钮宽度
- c++ - 为什么 C++ std::unordered_map 从 emplace / find 返回一个迭代器?
- javascript - JSON 操作 - 计算具有相同值的键,创建以计数为值的新对象
- laravel - Laravel 错误 - 找不到类 'Facade\Ignition\IgnitionServiceProvider'
- elasticsearch - Elastic Search:Elastic Search 7.1 中扁平数据类型的替代方案
- javascript - 无限滚动不适用于 2 个提要