1 Star 0 Fork 7

lian123520/分布式Id 基于雪花算法SnowFlake 多语言版本

forked from 十里/TheId 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
id.js 1.15 KB
一键复制 编辑 原始数据 按行查看 历史
十里 提交于 2021-03-25 01:34 . rename Disid.js to id.js.
/*(c)http://gitee.com/silis-open/id*/
(function(win){
if(win.top.Id) return win.top.Id;
var increaseNum; //自增数
random = Math.random(); //初始化的随机数
win.Id = function(){};
win.Id.generateString = function(){
//计算Id的时间部分,占4字节,即32位,即8个16进行字符。
var timePart = (Array(8).join(0) + parseInt(Date.now() / 1000).toString(16)).slice(-8);
//叠加式生成随机数,提高随机性
random = random + Math.random();
if(random >= 1) random -= 1;
//计算Id的自增部分,占3字节,即24位,即6个16进行字符。
increaseNum = (increaseNum || parseInt(random*10000000)) + 1;
if(increaseNum >= 16777216) increaseNum = 0;
var increasePart = (Array(6).join(0) + increaseNum).toString(16).slice(-6);
//叠加式生成随机数,提高随机性
random = random + Math.random();
if(random >= 1) random -= 1;
//计算Id的环境部分,占5字节,即40位,即10个16进行字符。
var envPart = (Array(10).join(0) + parseInt(random * 1000000000000)).toString(16).slice(-10);
return timePart + envPart + increasePart;
}
})(window);
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
JavaScript
1
https://gitee.com/lian123520/id.git
git@gitee.com:lian123520/id.git
lian123520
id
分布式Id 基于雪花算法SnowFlake 多语言版本
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385