O GUID (Global Unified Identifier) refere -se ao número gerado em uma máquina, o que garante que seja exclusivo de todas as máquinas no mesmo espaço e tempo. Normalmente, a plataforma fornece uma API para gerar Guids. O algoritmo de geração é muito interessante, usando o endereço do cartão Ethernet, o tempo de nanossegundos, o código de identificação do chip e muitos números possíveis. A única desvantagem do GUID é que a sequência de resultados gerada será relativamente grande.
O formato do GUID é: xxxxxxx-xxxxx-xxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Todo mundo sabe que o GUID não é muito útil no desenvolvimento do front-end, mas se você precisar inserir um ID e esse ID corresponde ao plano de fundo, etc., ainda podemos gerar um GUID para conveniência.
Geralmente, é muito simples gerar GUIDs em linguagens de fundo ou banco de dados, como SQL, Java, C#, etc., mas o front-end não possui um método para gerar GUIDS diretamente, para que você possa escrever apenas um sozinho. No entanto, porque o GUID precisa obter o endereço do cartão Ethernet e o tempo em nanossegundos. É difícil obter essas informações do front -end (diga -me se você souber sobre os sapatos infantis) e podemos simular a implementação e gerar o GUID, o código é o seguinte:
/*
* Função: Gere um código GUID, onde o GUID é composto por menos de 14 datas e horários e mais de 18 números aleatórios hexadecimais. O GUID tem uma certa probabilidade de repetição, mas a probabilidade de repetição é extremamente baixa. Teoricamente, a probabilidade de repetição é de 1/(16^18) por 10ms, ou seja, 1 parte do poder de 16, e a probabilidade de repetição é tão baixa quanto insignificante*/
function guid () {this.date = new date ();/* determine se foi inicializado. Se o código a seguir for inicializado, o código a seguir não será mais executado. De fato, ele será executado apenas uma vez*/if (typeof this.newguid! = 'Function') {/*gerar código de orientação*/guid.prototype.newguid = function () {this.date = new date (); var orientdstr = '; sexadecimaldate = this.hexadeCimal (thisgetdate this.hexadecimal (this.getguidtime (), 16); para (var i = 0; i <9; i ++) {guidstr += math.floor (math.random ()*16) .ToString (16);} GUIDSTR += sexadecimaldate; guia = sexadecimaltime; while (GUIDSTR.Length <32) {Guidstr += Math.floor (Math.random ()*16) .ToString (16);} Retorne this.Formatguid (Guidstr);}/** Função: Retorne o Valor de Retorna: a data atual: a data do número 8-Digit: 19700101* function() {return this.date.getFullYear() + this.addZero(this.date.getMonth() + 1) + this.addZero(this.date.getDay());}/** Function: Get the GUID format of the current time, that is, the 8-digit time, including milliseconds, milliseconds are 2-digit: 12300933* Return value: Return the string of the GUID date format */GUID.prototype.getGUIDTime = function() {return this.addZero(this.date.getHours()) + this.addZero(this.date.getMinutes()) + this.addZero(this.date.getSeconds()) + this.addZero(parseInt(this.date.getMilliseconds() / 10 ));}/** Função: Adicione 0 a um número inteiro positivo de um único dígito. Se for uma sequência que pode ser convertida em um número não-NAN, ela também pode ser implementada. Parâmetros: os parâmetros indicam que um número que está preparado para ser adicionado antes ou uma string que possa ser convertida em um número* Valor de retorno: Se a condição for atendida, retorne o tipo de sequência após adicionar 0, caso contrário, ele retornará sua própria string*/guid.prototype.addZero = function (num) {if (number (num) .ToString ()! Math.floor (num);} else {return num.toString ();}}/** função: converta o valor de dígito y em valores de dígito x* parâmetros: o primeiro parâmetro representa o valor a ser convertido; O segundo parâmetro representa a partícula a ser convertida; O terceiro parâmetro é opcional, representando o número atual de partículas, se não estiver escrito, é 10* Valor de retorno: retorne a sequência convertida*/guid.prototype.hexadecimal = function (num, x, y) {if (y! = indefinido) {return parseInt (num.tostring (), y) .tostring (x); parseInt (num.toString ()). ToString (x);}}/** Função: formate a sequência de 32 bits em uma string no modo Guid* Parâmetros: o primeiro parâmetro representa uma string de 32 bits* Valor de retorno: String no STR1. GUIDSTR.SLICE (8, 12) + '-', STR3 = GUIDSTR.SLICE (12, 16) + '-', STR4 = GUIDSTR.SLICE (16, 20) + '-', STR5 = GUIDST.SLICE (20); retorna STR1 + STR2 + STR3 + STR5 +;Objeto GUID
Basta salvá -lo em um arquivo JS e fazer referência a ele.
Então nós só precisamos
var Guid = new GUID ();
alerta (guid.newguid ());
Você pode obter o código GUID.
O princípio da implementação é muito simples. Aqui, apenas usamos o tempo do sistema e mais de 18 números aleatórios hexadecimais e convertemos o tempo do sistema em hexadecimal. Embora ainda seja possível repetir, a probabilidade de repetição é extremamente baixa e pode ser ignorada.