GUID (identificador unificado global) se refiere al número generado en una máquina, lo que asegura que sea exclusivo de todas las máquinas en el mismo espacio y tiempo. Por lo general, la plataforma proporciona una API para generar GUID. El algoritmo de generación es muy interesante, utilizando la dirección de la tarjeta Ethernet, el tiempo de nanosegundos, el código de identificación de chip y muchos números posibles. El único inconveniente de GUID es que la cadena de resultados generada será relativamente grande.
El formato de GUID es: xxxxxx-xxxxx-xxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Todos saben que GUID no es muy útil en el desarrollo frontal, pero si necesita insertar una ID y esta ID corresponde a los antecedentes, etc., aún podemos generar un GUID por conveniencia.
En general, es muy simple generar GUID en lenguajes de fondo o bases de datos como SQL, Java, C#, etc., pero el front-end no tiene un método para generar GUID directamente, por lo que solo puede escribir uno solo. Sin embargo, debido a que el GUID debe obtener la dirección de la tarjeta Ethernet y el tiempo en nanosegundos. Es difícil obtener esta información de la parte delantera (por favor dígame si conoce los zapatos para niños), y podemos simular la implementación y generar el GUID, el código es el siguiente:
/*
* Función: Genere un código GUID, donde el GUID se compone de menos de 14 fechas y tiempos y más de 18 números aleatorios hexadecimales. GUID tiene una cierta probabilidad de repetición, pero la probabilidad de repetición es extremadamente baja. Teóricamente, la probabilidad de repetición es 1/(16^18) por 10 ms, es decir, 1 parte al poder de 16, y la probabilidad de repetición es tan baja como insignificante*/
función guía () {this.date = new Date ();/* Determine si se ha inicializado. Si se inicializa el siguiente código, el siguiente código ya no se ejecutará. De hecho, solo se ejecutará una vez*/if (typeof this.newguid! = 'Function') {/*Genere el código GUID*/Guid.prototype.newGuid = function () {this.date = new Date (); var guidstr = '' '; sexadecimalDate = this.hexadecimal (this.getguiddate (), 16); sexadeCimaltimal = this.hexadecimal (this.getGuidTime (), 16); para (var i = 0; i <9; i ++) {guía += math.floor (math.random ()*16) .ToString (16);} guía += sexadecimalDate; Guidstr += sexadecimaltime; while (Guidstr.Length <32) {GUIDSTR += MATH.FLOOR (MATH.RANDOM ()*16) .ToString (16);} Devuelve this.FormatGuid (Guidstr);}/** Función: Obtener el formato de Guid Format de la fecha actual, es decir, la fecha del número de 8 dígitos: 19700101*Valor de retorno: devolver la cadena del formato GUID*/GUID function () {return this.date.getblyear () + this.addzero (this.date.getMonth () + 1) + this.addzero (this.date.getday ());}/** Función: Obtener el formato de la hora actual, es decir, el valor de 8 dígitos, incluyendo milisegundos, miliseguros son 2-dígito: 12300933 33* format*/guía.prototype.getguidtime = function () {return this.addzero (this.date.gethours ()) + this.addzero (this.date.getminutes ()) + this.addzero (this.date.getSeconds ()) + this.addzero (parseint (this.date.getmillisEds ()/10)/10) Función: Agregue 0 a un entero positivo de un solo dígito. Si se trata de una cadena que se puede convertir a un número no NAN, también se puede implementar. Parámetros: los parámetros indican que un número que está preparado para agregarse antes o una cadena que se puede convertir en un número* Valor de retorno: si la condición se cumple, devuelva el tipo de cadena después de agregar 0, de lo contrario devolverá su propia cadena*/guía.prototype.addzero = function (num) {if (número (num) .ToString ()! = 'Nan' && num> = 0 & 0 & 0 & 0 & 0 & 0 & 0 <10) {if 0 ' +. Math.floor (num);} else {return num.ToString ();}}/** Función: Convierta el valor y-dígito en parámetros del valor x-dígito*: el primer parámetro representa el valor a convertir; El segundo parámetro representa la partícula a convertir; El tercer parámetro es opcional, que representa el número de partícula actual, si no está escrito, es 10* Valor de retorno: devuelve la cadena convertida*/guía.prototype.hexadecimal = function (num, x, y) {if! = Undefined) {return parseint (num.ToString (), y) .toString (x);} más {return) parseInt (num.ToString ()). toString (x);}}/** función: formatear la cadena de 32 bits a una cadena en modo guía* parámetros: el primer parámetro representa una cadena de 32 bit* valor de retorno: cadena en el formato estándar*/guía.prototype.formatguid = function (guía) {var str1 = guía str1 = guystr. guíaR.slice (8, 12) + '-', str3 = guíaR.Slice (12, 16) + '-', str4 = guíaR.Slice (16, 20) + '-', str5 = Guidstr.slice (20); return str1 + str2 + str3 + str4 + str5;}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} girObjeto de guía
Simplemente guárdelo en un archivo JS y haga referencia.
Entonces solo necesitamos
var guía = new Guid ();
alerta (guía.newguid ());
Puede obtener el código GUID.
El principio de implementación es muy simple. Aquí solo usamos el tiempo del sistema y más de 18 números aleatorios hexadecimales, y convertimos el tiempo del sistema a hexadecimal. Aunque todavía es posible repetirlo, la probabilidad de repetición es extremadamente baja y puede ignorarse.