Für Situationen, in denen Sie bereits eine URL für eine Ressource erstellt haben, indem Sie le site URL.createObjectURL
méthode werden Sie wahrscheinlich nicht schneller oder kürzer als wie folgt vorankommen:
const uuid = url => url.substr(-36);
Die obigen Ausführungen funktionieren mit jeder kompatiblen Implementierung von createObjectURL
, da die Spezifikation ausdrücklich vorschreibt eine UUID an das Ende der vom ersteren zurückgegebenen URL angehängt werden. So ist gewährleistet, dass die letzten 36 Zeichen der UUID-Teil der generierten URL sind.
Um das klarzustellen, manchmal - vielleicht sogar meistens, wenn man alles in Betracht zieht - möchten Sie eine UUID für etwas anderes als Ressourcen erzeugen, für die Sie URLs mit createObjectURL
. In diesen Fällen kann der Aufruf der letztgenannten Methode für einige new Blob()
wird die Leistung absolut verschlingen (und Speicher lecken, es sei denn, Sie räumen hinter sich auf, indem Sie die entsprechende revokeObjectURL
). Trotzdem ist es ein ziemlicher "Einzeiler".
I ne pas empfehlen wir Ihnen, die obige Methode nur für die Generierung von UUIDs zu verwenden, es sei denn, Sie haben bereits URLs, die durch createObjectURL
oder etwas, das eine UUID am Ende hat.
Ich wollte die obige Variante nur der Vollständigkeit halber erwähnen.
38 Stimmen
GUIDs, die als Zeichenketten dargestellt werden, sind mindestens 36 und höchstens 38 Zeichen lang und entsprechen dem Muster ^\{?[a-zA-Z0-9]{36}?\}$ und sind daher immer in ASCII.
5 Stimmen
David Bau bietet einen viel besseren Zufallszahlengenerator an, der unter davidbau.com/archives/2010/01/30/ Ich habe einen etwas anderen Ansatz zur Erzeugung von UUIDs unter blogs.cozi.com/tech/2010/04/generating-uuids-in-javascript.html
1 Stimmen
Seltsam, dass das noch niemand erwähnt hat, aber der Vollständigkeit halber: Es gibt eine Fülle von guid-Generatoren auf npm Ich wette, die meisten von ihnen funktionieren auch im Browser.
1 Stimmen
Wenn jemand mehr Optionen wie verschiedene Versionen der uuid und Unterstützung für nicht standardmäßige guids wünscht, können REST-basierte uuid-Generierungsdienste wie diese [ fungenerators.com/api/uuid ] sind ebenfalls eine attraktive Option.
2 Stimmen
Etwa 12 Jahre später mit
BigInt
und ES6-Klassen können auch andere Techniken eingesetzt werden, die Raten von 500.000 uuid/sec ermöglichen. Siehe Referenz5 Stimmen
Comme andere haben erwähnt Wenn Sie nur eine kleine Anzahl von UUIDs in einem Browser erzeugen, verwenden Sie einfach
URL.createObjectURL(new Blob()).substr(-36)
. ( Ausgezeichnete Browser-Unterstützung ). (Um Speicherlecks zu vermeiden, URL.revokeObjectURL(url) aufrufen )1 Stimmen
Wenn Sie ein unternehmenskritisches Problem haben, schreiben Sie besser einen Endpunkt, der mit Pyhton geschrieben wurde, und rufen ihn auf. Weil es so implementiert ist, wie unter datatracker.ietf.org/doc/html/rfc4122.html