避免单纯以当前时间作为唯一标识

近期遇到的一个问题,使用某个外部插件生成右键菜单,右键菜单内部实现以当前时间戳(milliseconds)为id,包括我门自己在做一些开发工作的时候,经常喜欢以时间戳作为唯一标识.

这是有问题的: 当操作较连续时,极有可能生成重复的id.
说说右键菜单的问题: 我在一个循环中,为不同的组件赋予了不同的菜单,但奇怪的是有时会出现两个组件菜单相同的情况,查了很才发现有两个菜单的id竟然完全相同,导致后面生成的菜单项虽然内容不同,但通过id显示出来时是第一个菜单。比如下面这个例子(简化的):

for(var i = 0 ; i < 10; ++i){
  console.log(new Date().getTime());
}

上面代码打印出的10个时间戳,好几个都会是重复的。

怎么解决呢?建议在以时间戳作为id时,后面附加几位随机数。
比如new Date().getTime() + parseInt(Math.random()*1000),附加4位随机数。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,107评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,002评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,665评论 0 17
  • 2016年1月1日 我在火车上跨年 2017年1月1日 在火车上跨年,时间变了,其他的却成了巧合 想用2016年的...
    有一个转转的圈阅读 167评论 0 0
  • 文/刘彩霞 观经行道 已然放下所有 行深波若 却忘不掉黄昏里你深深的凝眸 还有一次次执手 泪眼相望绕指纤柔 引来对...
    彩霞漫天阅读 363评论 0 0