GUID (Global Unified Identifier) mengacu pada angka yang dihasilkan pada mesin, yang memastikan bahwa itu unik untuk semua mesin dalam ruang dan waktu yang sama. Biasanya platform menyediakan API untuk menghasilkan panduan. Algoritma generasi sangat menarik, menggunakan alamat kartu Ethernet, waktu nanosecond, kode ID chip dan banyak angka yang mungkin. Satu -satunya kelemahan GUID adalah bahwa string hasil yang dihasilkan akan relatif besar.
Format GUID adalah: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Semua orang tahu bahwa GUID tidak terlalu berguna dalam pengembangan front-end, tetapi jika Anda perlu memasukkan ID dan ID ini sesuai dengan latar belakang, dll., Kami masih dapat menghasilkan GUID untuk kenyamanan.
Umumnya sangat sederhana untuk menghasilkan GUID dalam bahasa latar belakang atau database seperti SQL, Java, C#, dll., Tetapi front-end tidak memiliki metode untuk menghasilkan GUID secara langsung, sehingga Anda hanya dapat menulisnya sendiri. Namun, karena Guid perlu mendapatkan alamat kartu Ethernet dan waktu di nanoseconds. Sulit untuk mendapatkan informasi ini dari ujung depan (tolong beri tahu saya jika Anda tahu tentang sepatu anak -anak), dan kami dapat mensimulasikan implementasi dan menghasilkan guid, kodenya adalah sebagai berikut:
/*
* Fungsi: Hasilkan kode GUID, di mana GUID terdiri dari kurang dari 14 tanggal dan waktu dan lebih dari 18 angka acak heksadesimal. GUID memiliki probabilitas pengulangan tertentu, tetapi probabilitas pengulangan sangat rendah. Secara teoritis, probabilitas pengulangan adalah 1/(16^18) per 10ms, yaitu, 1 bagian dari kekuatan 16, dan probabilitas pengulangan serendah*//
function guid () {this.date = new date ();/* Tentukan apakah itu telah diinisialisasi. Jika kode berikut diinisialisasi, kode berikut tidak akan lagi dieksekusi. In fact, it will only be executed once */if (typeof this.newGUID != 'function') {/* Generate GUID code*/GUID.prototype.newGUID = function() {this.date = new Date();var guidStr = '';sexadecimalDate = this.hexadecimal(this.getGUIDDate(), 16);sexadecimalTime = this.hexadecimal (this.getGuidtime (), 16); for (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);}/** Fungsi: Dapatkan format GUID DATANG DARI saat ini, yaitu Tanggal Guid dari 8-digit Number: 19700101*Return Tanggal, yaitu Tanggal Guid dari 8-digit Number: 19700101*Return Nilai: Tanggal Guid*Tanggal GUID/TANGGAL DIG-DIGOT. function () {return this.date.getlyear () + this.addzero (this.date.getMonth () + 1) + this.addzero (this.date.getday ());}/** Fungsi: Dapatkan format guid dari waktu saat ini, yaitu 2-digit waktu, termasuk milliseconds, Milliseconds, MILLISECECS: yaitu 2-Digit waktu, termasuk milidonds, milliseconds, milliseconds* Nilai adalah 2-Digit Time, termasuk Milliseconds, milliseconds, milliseconds* Nilai adalah 2-Digit waktu, termasuk Milliseconds, Milliseconds, Milliseconds, MILLISECECS* DIGNICE adalah 2-Digit Time, termasuk Milliseconds, Milliseconds, MILLISECONS* format*/guid.prototype.getGuidtime = function () {return this.addzero (this.date.getHours ()) + this.addzero (this.date.getMinutes ()) + this.addzero (this.date.getSeconds ()) + this.addzero (parkeint. Fungsi: Tambahkan 0 ke bilangan bulat positif dari satu digit. Jika itu adalah string yang dapat dikonversi ke nomor non-NAN, itu juga dapat diimplementasikan. Parameter: Parameter menunjukkan bahwa angka yang disiapkan untuk ditambahkan sebelum atau string yang dapat dikonversi menjadi angka* nilai pengembalian: jika kondisi dipenuhi, kembalikan jenis string setelah menambahkan 0, jika tidak akan mengembalikan string sendiri*/guid.prototype.addzero = function (num) {if (number (num) .toString ()! Math.floor (num);} else {return num.toString ();}}/** Fungsi: Konversi nilai y digit ke nilai x digit* parameter: parameter pertama mewakili nilai yang akan dikonversi; Parameter kedua mewakili partikel yang akan dikonversi; Parameter ketiga adalah opsional, mewakili nomor partikel saat ini, jika tidak ditulis, itu adalah 10* nilai pengembalian: mengembalikan string yang dikonversi*/guid.prototype.hexadecimal = function (num, x, y) {if (y! = tidak terdefinisi) {return parseInt (num.toString (), y) .toString (x);; ParseInt (num.toString ()). ToString (x);}}/** Fungsi: Memformat string 32-bit ke string dalam mode Guid* Parameter: Parameter pertama mewakili string 32-bit* return: string dalam format Guid standar*/guid.prototype.FormatGuid = function (guid) {var strototype. Guidstr.slice (8, 12) + '-', str3 = guidstr.slice (12, 16) + '-', str4 = guidstr.slice (16, 20) + '-', str5 = guidstr.slice (20); kembalikan str1 + str2 + str3 + str4 + str5;}}}Objek Guid
Simpan saja dalam file JS dan referensi.
Maka kita hanya perlu
var guid = Guid baru ();
alert (guid.newguid ());
Anda bisa mendapatkan kode panduan.
Prinsip implementasi sangat sederhana. Di sini kami hanya menggunakan waktu sistem dan lebih dari 18 angka acak heksadesimal, dan mengonversi waktu sistem menjadi heksadesimal. Meskipun masih mungkin untuk diulang, probabilitas pengulangan sangat rendah dan dapat diabaikan.