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. Le 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 à la puissance de 16, et la probabilité de répétition est si faible qu'elle est négligeable * Avertissement: ce code est pour l'apprentissage des auteurs. Si les pertes causées par les problèmes de code pendant le processus d'utilisation de l'utilisateur n'ont rien à voir avec l'auteur * Date: 4 septembre 2014 * Auteur: WYC * / 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é et il ne sera exécuté qu'une seule fois dans la réalité * / if (typeof this.newguid! = 'Function') {/ * générer du code 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 + = SexadeCImaltime; while (Guidstr.Length <32) {Guidstr + = math.floor (math.random () * 16) .toString (16); } return this.formatGuid (GUIDSTR); } / * * Fonction: Obtenez le format GUID de la date actuelle, c'est-à-dire la date du numéro à 8 chiffres: 19700101 * Valeur de retour: renvoyez la chaîne du format de date de guid dans le format Date de Guide * / Guid.prototype.getGuidDate = function () {return this.date.getlyar () + this.addzero (this.date.getmoneth () + 1) +) this.addzero (this.date.getDay ()); } / * * Fonction: Obtenez le format GUID de l'heure actuelle, c'est-à-dire l'heure de 8 chiffres, y compris les millisecondes, et les millisecondes sont à 2 chiffres: 12300933 * RETOUR VALEUR: RETOUR La chaîne du format Date de Guide * / Guid.prototype.getGuidtime = function () {return this.addzero (this.date.gethores ()) +) this.addzero (this.date.getMinutes ()) + this.addzero (this.date.getSeconds ()) + 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 que le nombre de 0 est prêt à être ajouté avant ou une chaîne qui peut être convertie en un nombre * Valeur de retour: Si la condition remplit les conditions, 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 & & g <10). Math.floor (num); } else {return num.toString (); }} / * * Fonction: Convertissez la valeur Y-Digit en la valeur X-Digit * Paramètres: Le premier paramètre représente la valeur à convertir; Le deuxième paramètre représente le binaire à convertir; Le troisième paramètre est facultatif, représentant le numéro binaire actuel, s'il n'est pas écrit, il est de 10 * valeur de retour: renvoie la chaîne convertie * / Guid.prototype.hexadecimal = function (num, x, y) {if (y! = Undefined) {return parseInt (num.tostring (), y) .tostring (x); } else {return parseInt (num.toString ()). toString (x); }} / * * Fonction: Format des chaînes de 32 bits aux chaînes en mode GUID * Paramètres: le premier paramètre représente 32 bits * Valeur de retour: chaîne au format Guid standard * / Guid.prototype.formatGuid = fonction (GuidStr) {var str1 = Guidstr.Slice (0, 8) + '-', str2 = GuidStr.slice (8, 12) + ',. 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 en avons juste besoin.
La copie de code est la suivante:
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.
Ce qui précède est la méthode de génération de Guid écrit par moi. S'il y a une meilleure méthode, dites-moi, merci!