• 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没有重复。

  • 相关阅读:
    uva10912 Simple Minded Hashing(DP)
    uva10401 Injured Queen Problem(DP)
    uva702 The Vindictive Coach(DP)
    忍者X4将采取自动开通vip,论坛充值淘宝自助购买均可。步骤如下
    C盘不够大,可以这样操作
    任务思维1
    PHP 获取指定日期的星期方法如下
    学学C#开发client,server,C/S架构的程序
    今天的主角就是protobuf-net
    关于忍者站群X4-小飞镖服务器配置帮助汇总。
  • 原文地址:https://www.cnblogs.com/sunyuweb/p/11685312.html
Copyright © 2020-2023  润新知