zoukankan      html  css  js  c++  java
  • ID生成算法(二)

    上一篇文章介绍了一种用雪花算法生成GUID的方法,下面介绍里外一种生成GUID并导出为.txt文件的方法:

    话不多说 show you the code !

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>GUID</title>
    </head>
    <body>
        <button id="save" type="button">保存GUID文件</button>
        <script type="text/javascript">
        var GUID_ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";
        var GUID_LENGTH = 20,res = [];
        var guid = function(a) {
            // 改变参数i,想要多少个给多少
            for (var i = 0; i < 10; i++) {
                a = null != a ? a : GUID_LENGTH;
                for (var b = [], str = '', c = 0; c < a; c++) {
                    b.push(GUID_ALPHABET.charAt(Math.floor(Math.random() * GUID_ALPHABET.length)));
                }
                str = b.join("");
                console.log('str--' + i, str);
                res.push(str+'
    ');
            }
            return res;
        };
    
        document.querySelector('#save').addEventListener('click', saveFile);
    
        function fakeClick(obj) {
            var ev = document.createEvent("MouseEvents");
            ev.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
            obj.dispatchEvent(ev);
        }
    
        function exportRaw(name, data) {
            var urlObject = window.URL || window.webkitURL || window;
            var export_blob = new Blob([data]);
            var save_link = document.createElementNS("http://www.w3.org/1999/xhtml", "a");
            save_link.href = urlObject.createObjectURL(export_blob);
            save_link.download = name;
            fakeClick(save_link);
        }
    
        function saveFile() {
            var inValue = guid();
            exportRaw('guid.txt', inValue);
        }
        </script>
    </body>
    
    </html>

      另外,如果想要使生成的GUID更复杂,更有序,可以在这个生成的GUID字符串基础上加 时间戳 相关的业务分类字符串 等等。

    已经验证该方法生成的大量ID没有重复。

  • 相关阅读:
    内存跟硬盘的区别
    MCU在电动滑板车硬件实物的设计技巧
    MCU微控制器在电动滑板车技术核心剖析
    ​FRAM技术简介
    FRAM作为代码存储器应用中的单芯片解决方案
    ​内存技术词汇表
    NV-SRAM与BBSRAM之间的比较
    非易失性存储器NV-SRAM的关键属性
    游戏机电池供电的SRAM解决方案
    个人学期期末总结和对王建民老师的评价
  • 原文地址:https://www.cnblogs.com/sunyuweb/p/11685312.html
Copyright © 2011-2022 走看看