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 dengan kekuatan 16, dan probabilitas pengulangan sangat rendah sehingga dapat diabaikan* Penafian: Kode ini untuk pembelajaran penulis. Jika kerugian yang disebabkan oleh masalah kode selama proses penggunaan pengguna tidak ada hubungannya dengan penulis* Tanggal: 4 September 2014* Penulis: WYC*/ Function GUID () {this.date = new Date (); /* Tentukan apakah itu telah diinisialisasi. Jika kode berikut diinisialisasi, kode berikut tidak akan lagi dieksekusi, dan itu hanya akan dieksekusi sekali dalam kenyataan*/ if (typeof this.newguid! = 'Function') {/*Hasilkan kode pedoman*/ guid.prototype.newguid = function () {this.date = tanggal baru (); var guidstr = ''; sexadecimaldate = this.hexadecimal (this.getguiddate (), 16); sexadecimaltime = this.hexadecimal (this.getguidtime (), 16); untuk (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 dari tanggal saat ini, yaitu, tanggal 8-digit Nomor: 19700101 * Nilai Pengembalian: Mengembalikan string format Tanggal Guid dalam Format Tanggal Guid * / Guid.prototype.getGuIddate = function () {return this.date.getlyear () + this.addzero (ini this.addzero (this.date.getday ()); } / * * Fungsi: Dapatkan format GUID dari waktu saat ini, yaitu, waktu 8 digit, termasuk milidetik, dan milidetik adalah 2 digit: 12300933 * Nilai pengembalian: mengembalikan string format tanggal guid * / guid.prototype.getGuidtime = function () {return this.addzero (ini this.addzero (this.date.getMinutes ()) + this.addzero (this.date.getSeconds ()) + this.addzero (this.date.getSeconds ()) + this.addzero (parseInt (this.date.getMillisConds () / 10)); } / * * 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 jumlah 0 disiapkan untuk ditambahkan sebelum atau string yang dapat dikonversi menjadi angka* nilai pengembalian: jika kondisi memenuhi syarat, mengembalikan tipe string setelah menambahkan 0, jika tidak, ia akan mengembalikan string sendiri*/ guid.prototype.addzero = function (num) {if (angka (angka). 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 biner yang akan dikonversi; Parameter ketiga adalah opsional, mewakili nomor biner 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); } else {return parseInt (num.toString ()). tostring (x); }} /** Fungsi: Format string 32-bit ke string dalam mode Guid* Parameter: Parameter pertama mewakili string 32-bit* nilai pengembalian: string dalam format GUID standar* / guid.prototype.formatguId = function (guidstr) {var str1 = guidstr.slice (0, 8) + '-', str2 = var str1 = guidstr.slice (0, 8) + '-'. Guidstr.slice (12, 16) + '-', str4 = guidstr.slice (16, 20) + '-', str5 = guidstr.slice (20); mengembalikan str1 + str2 + str3 + str4 + str5; }}}Objek Guid
Simpan saja dalam file JS dan referensi.
Lalu kita hanya membutuhkannya.
Salinan kode adalah sebagai berikut:
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.
Di atas adalah metode menghasilkan GUID yang ditulis oleh saya. Jika ada metode yang lebih baik, tolong beri tahu saya, terima kasih!