GUID (Global Unified Identifier) fait référence au nombre généré sur une machine, ce qui garantit qu'il est unique à toutes les machines du même espace et du même temps. Habituellement, la plate-forme fournit une API pour générer des guids. L'algorithme de génération est très intéressant, en utilisant l'adresse de la carte Ethernet, le temps nanoseconde, le code d'identification de la puce et de nombreux numéros possibles. Le seul inconvénient de GUID est que la chaîne de résultats générée sera relativement importante.
Le format de GUID est: xxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Tout le monde sait que GUID n'est pas très utile dans le développement frontal, mais si vous devez insérer un ID et cet ID correspond à l'arrière-plan, etc., nous pouvons toujours générer un GUID pour plus de commodité.
Il est généralement très simple de générer des guides en arrière-plan ou des langages de base de données tels que SQL, Java, C #, etc., mais le front-end n'a pas de méthode pour générer directement des guides, vous ne pouvez donc en écrire qu'un seul. Cependant, parce que le GUID doit obtenir l'adresse de la carte Ethernet et le temps dans les nanosecondes. Il est difficile d'obtenir ces informations à partir de l'avant (veuillez me dire si vous connaissez les chaussures des enfants), et nous pouvons simuler la mise en œuvre et générer le GUID, le code est le suivant:
/ *
* Fonction: générer un code GUID, où le GUID est composé de moins de 14 dates et heures et plus de 18 nombres aléatoires hexadécimaux. Guid a une certaine probabilité de répétition, mais la probabilité de répétition est extrêmement faible. Théoriquement, la probabilité de répétition est de 1 / (16 ^ 18) par 10 ms, c'est-à-dire 1 partie à la puissance de 16, et la probabilité de répétition est aussi faible que négligeable * /
Fonction Guid () {this.date = new Date (); / * Déterminez s'il a été initialisé. Si le code suivant est initialisé, le code suivant ne sera plus exécuté. En fait, il ne sera exécuté qu'une seule fois * / if (typeof this.newguid! = 'Function') {/ * générer du code de guid * / Guid.prototype.newGuid = function () {this.date = new Date (); var Guidstr = ''; sexAdECImaldate = this.hexadecimal (this.getguidDate (), 16); sexadeCiMaltime = this.hexaDecimal (this.getGuidTime (), 16); pour (var i = 0; i <9; i ++) {Guidstr + = math.floor (math.random () * 16) .toString (16);} Guidstr + = Sexadecimaldate; GuidStr + = SexaDecimal; Pendant (Guidstr.Length <32) {GuidStr + = Math.Floor (Math.Random () * 16) .ToString (16);} renvoie ce.formatGuid (GuidStr);} / ** Fonction: Obtenez le format Guid de la date de retour de la chaîne de la chaîne du format de date de Guid. function () {return this.date.getlyear () + this.addzero (this.date.getmonth () + 1) + this.addzero (this.date.getDay ());} / ** Fonction: Obtenez le format de guidage de l'heure actuelle, c'est-à-dire l'heure à 8 digit 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); Fonction: Ajoutez 0 à un entier positif d'un seul chiffre. S'il s'agit d'une chaîne qui peut être convertie en un numéro non-NAN, il peut également être implémenté. Paramètres: les paramètres indiquent qu'un nombre qui est prêt à être ajouté avant ou une chaîne qui peut être convertie en un nombre * Valeur de retour: Si la condition est remplie, renvoyez le type de chaîne après l'ajout de 0, sinon il renverra sa propre chaîne * / Guid.prototype.addzero = fonction (num) {if (nombre (num) .tostring ()! = 'Nan' && num> = 0 && Math.floor (num);} else {return num.toString ();}} / * * Fonction: converti la valeur de chiffre en y en valeur x de chiffre * Paramètres: le premier paramètre représente la valeur à convertir; Le deuxième paramètre représente la particule à convertir; Le troisième paramètre est facultatif, représentant le numéro de particules actuel, s'il n'est pas écrit, il s'agit de 10 * valeur de retour: renvoie la chaîne convertie * / Guid.prototype.hexaDecimal = function (num, x, y) {if (y! = Undefined) {return parseInt (return.ToString (), y) .tostring (x);} else {return {return parseInt (num.toString ()). toString (x);}} / ** Fonction: Formater la chaîne 32 bits à une chaîne en mode Guide * Paramètres: le premier paramètre représente une chaîne 32 bits * Valeur de retour: chaîne au format Guid standard * / Guid.prototype.FormatGuid = fonction (GuidStr) {var str1 = Guidstr. Guidstr.slice (8, 12) + '-', str3 = Guidstr.slice (12, 16) + '-', str4 = Guidstr.slice (16, 20) + '-', str5 = Guidstr.slice (20); retour str1 + str2 + str3 + str4 + str5;}}}}Objet GUID
Enregistrez-le simplement dans un fichier JS et référez-le.
Ensuite, nous avons juste besoin
var Guid = new Guid ();
alert (Guid.newGuid ());
Vous pouvez obtenir le code GUID.
Le principe de mise en œuvre est très simple. Ici, nous utilisons simplement le temps du système et plus de 18 nombres aléatoires hexadécimaux, et convertissez le temps du système en hexadécimal. Bien qu'il soit toujours possible de répéter, la probabilité de répétition est extrêmement faible et peut être ignorée.