首页 > 解决方案 > 这是一个唯一的 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

解决方案


因为不能在同一台机器上同时生成两个时间戳。

由同一台机器生成并在同一台机器内生成 - 单独的时间戳 - 保证是唯一的。


推荐阅读