Guid (Global Unified Identifier) bezieht sich auf die auf einer Maschine generierte Anzahl, die sicherstellt, dass sie für alle Maschinen im gleichen Raum und in derselben Zeit nur eindeutig ist. Normalerweise bietet die Plattform eine API zum Erstellen von Richtlinien. Der Generationsalgorithmus ist sehr interessant und verwendet die Ethernet -Kartenadresse, die Nanosekundenzeit, den Chip -ID -Code und viele mögliche Zahlen. Der einzige Nachteil der Richtlinie ist, dass die erzeugte Ergebnisfolge relativ groß ist.
Das Format von GUID lautet: xxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:
Jeder weiß, dass die GUID in der Front-End-Entwicklung nicht sehr nützlich ist. Wenn Sie jedoch eine ID einfügen müssen und diese ID dem Hintergrund usw. entspricht, können wir dennoch eine GUID für die Bequemlichkeit generieren.
Es ist im Allgemeinen sehr einfach, Guids in Hintergrund- oder Datenbanksprachen wie SQL, Java, C#usw. zu generieren. Das Front-End verfügt jedoch nicht über eine Methode, um Richtlinien direkt zu generieren, sodass Sie nur selbst eine schreiben können. Da der GUT jedoch die Adresse der Ethernet -Karte und die Zeit in Nanosekunden erhalten muss. Es ist schwierig, diese Informationen vom Frontend aus zu erhalten (bitte sagen Sie mir, ob Sie über Kinderschuhe wissen), und wir können die Implementierung simulieren und die GUID generieren, der Code lautet wie folgt:
/*
* Funktion: Generieren Sie einen Richtungscode, in dem sich die GUID aus weniger als 14 Daten und Zeiten und mehr als 18 hexadezimalen Zufallszahlen zusammensetzt. Die GUID hat eine gewisse Wiederholungswahrscheinlichkeit, die Wiederholungswahrscheinlichkeit ist jedoch äußerst gering. Theoretisch beträgt die Wiederholungswahrscheinlichkeit 1/(16^18) pro 10 ms, dh 1 Teil der Leistung von 16, und die Wiederholungswahrscheinlichkeit ist so niedrig wie vernachlässigbar*/
Funktionsguid () {this.date = new Date ();/* Bestimmen Sie, ob es initialisiert wurde. Wenn der folgende Code initialisiert wird, wird der folgende Code nicht mehr ausgeführt. Tatsächlich wird es nur einmal ausgeführt*/if (typeof this.newguid! = 'Function') {/*Guid -Code generieren this.hexadecimal (this.getGuidTime (), 16); für (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);}/** Funktion: Holen Sie sich das Richtungsformat des aktuellen Datums, das Datum des 8-Digit-Platzs: 19700101*zurück. function () {return this.date.getingfullyear () + this.addzero (this.date.getMonth () + 1) + this.addzero (this.date format*/goid.prototype.getGuidTime = function () {return this.addzero (this.date.gethours ()) + this.addzero (this.date.getminutes ()) + this.addzero (this.date.getSeconds ()) + this.adZero (Parseinta ()} (this.date.date.Date.Date.Date.Date.Date.Date.Date.Date.Date.Date. Funktion: Fügen Sie 0 zu einer positiven Ganzzahl einer einzelnen Ziffer hinzu. Wenn es sich um eine Zeichenfolge handelt, die in eine Nicht-NAN-Nummer konvertiert werden kann, kann sie auch implementiert werden. Parameter: Parameter geben an, dass eine Zahl, die vor dem hinzugefügten oder einer Zeichenfolge hinzugefügt wird, die in eine Nummer konvertiert werden kann. Math.floor (num);} else {return num.toString ();}}/** Funktion: Konvertieren Sie den y-digit-Wert in den X-Digit-Wert* Parameter: Der erste Parameter repräsentiert den zu konvertierten Wert; Der zweite Parameter repräsentiert das zu konvertierende Partikel; Der dritte Parameter ist optional und repräsentiert die aktuelle Partikelnummer, falls nicht geschrieben, es ist 10* Rückgabewert: Rückgabe der konvertierten String*/Guid.Prototype parseInt (num.toString ()). toString (x);}}/** Funktion: Formatieren Sie die 32-Bit-Zeichenfolge in einen String im Richtmodus* Parameter: Der erste Parameter repräsentiert einen 32-Bit-String* Return-Wert: String im Standard-GUID-Format*/Guid.Prototyp. Guidstr.Slice (8, 12) + '-', Str3 = Guidstr.Richtobjekt
Speichern Sie es einfach in einer JS -Datei und verweisen Sie sie.
Dann brauchen wir nur
var Guid = new Guid ();
Alert (Guid.Newguid ());
Sie können den Guid -Code erhalten.
Das Implementierungsprinzip ist sehr einfach. Hier verwenden wir nur die Systemzeit und mehr als 18 hexadezimale Zufallszahlen und konvertieren die Systemzeit in Hexadezimal. Obwohl es immer noch möglich ist, sich zu wiederholen, ist die Wiederholungswahrscheinlichkeit extrem niedrig und kann ignoriert werden.