GUID (Global Unified Identifier) หมายถึงจำนวนที่สร้างขึ้นบนเครื่องซึ่งทำให้มั่นใจได้ว่ามันเป็นเอกลักษณ์ของเครื่องจักรทั้งหมดในพื้นที่และเวลาเดียวกัน โดยปกติแล้วแพลตฟอร์มจะให้ API สำหรับการสร้าง GUID อัลกอริทึมการสร้างเป็นสิ่งที่น่าสนใจมากโดยใช้ที่อยู่การ์ดอีเธอร์เน็ตเวลานาโนวินาทีรหัสรหัสชิปและตัวเลขที่เป็นไปได้มากมาย ข้อเสียเปรียบเพียงอย่างเดียวของ GUID คือสตริงผลลัพธ์ที่สร้างขึ้นจะค่อนข้างใหญ่
รูปแบบของ guid คือ: xxxxxx-xxxxx-xxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxX
ทุกคนรู้ว่า GUID นั้นไม่ได้มีประโยชน์มากในการพัฒนาส่วนหน้า แต่ถ้าคุณต้องการแทรก ID และ ID นี้สอดคล้องกับพื้นหลัง ฯลฯ เรายังสามารถสร้าง GUID เพื่อความสะดวก
โดยทั่วไปแล้วมันง่ายมากที่จะสร้าง GUIDs ในภาษาพื้นหลังหรือภาษาฐานข้อมูลเช่น SQL, Java, C#, ฯลฯ แต่ส่วนหน้าไม่มีวิธีการสร้าง GUIDs โดยตรงดังนั้นคุณสามารถเขียนได้ด้วยตัวเองเท่านั้น อย่างไรก็ตามเนื่องจาก GUID จำเป็นต้องได้รับที่อยู่ของการ์ดอีเธอร์เน็ตและเวลาในนาโนวินาที เป็นการยากที่จะได้รับข้อมูลนี้จากส่วนหน้า (โปรดบอกฉันว่าคุณรู้เกี่ยวกับรองเท้าเด็ก) และเราสามารถจำลองการใช้งานและสร้าง GUID ได้รหัสมีดังนี้:
/ * * ฟังก์ชั่น: สร้างรหัส GUID โดยที่ GUID ประกอบด้วยวันที่น้อยกว่า 14 วันและเวลาและมากกว่า 18 หมายเลขสุ่มเฮกเซดซิม GUID มีความน่าจะเป็นซ้ำซ้อนบางอย่าง แต่ความน่าจะเป็นซ้ำซ้อนนั้นต่ำมาก ในทางทฤษฎีความน่าจะเป็นซ้ำ ๆ คือ 1/(16^18) ต่อ 10ms นั่นคือ 1 ถึงพลังของ 16 และความน่าจะเป็นซ้ำ ๆ จะต่ำมากจนมีข้อจำกัดความรับผิดชอบ*: รหัสนี้มีไว้สำหรับการเรียนรู้ของผู้เขียน หากการสูญเสียที่เกิดจากปัญหารหัสในระหว่างกระบวนการใช้งานของผู้ใช้ไม่มีส่วนเกี่ยวข้องกับผู้แต่ง* วันที่: 4 กันยายน 2014* ผู้แต่ง: WYC*/ ฟังก์ชัน GUID () {this.date = วันที่ใหม่ (); /* พิจารณาว่ามีการเริ่มต้นหรือไม่ หากรหัสต่อไปนี้เริ่มต้นรหัสต่อไปนี้จะไม่ถูกเรียกใช้งานอีกต่อไปและจะถูกเรียกใช้งานเพียงครั้งเดียวในความเป็นจริง*/ ถ้า (typeof this.newGuid! = 'function') {/*สร้างรหัส GUID*/ guid.prototype.newGuid = function () {this.date = วันที่ใหม่ (); var guidstr = ''; sexadecimaldate = this.hexadecimal (this.getGuiddate (), 16); sexadecimaltime = this.hexadecimal (this.getGuidTime (), 16); สำหรับ (var i = 0; i <9; i ++) {guidstr+= math.floor (math.random ()*16) .toString (16); } guidstr += sexadecimaldate; guidstr += sexadecimaltime; ในขณะที่ (guidstr.length <32) {guidstr += math.floor (math.random ()*16) .tostring (16); } ส่งคืน this.formatguid (Guidstr); } / * * ฟังก์ชั่น: รับรูปแบบ GUID ของวันที่ปัจจุบันนั่นคือวันที่ของหมายเลข 8 หลัก: 19700101 * ค่าส่งคืน: ส่งคืนสตริงของรูปแบบวันที่ GUID ในรูปแบบวันที่ GIAD * / guid.prototype.getGuidDate = function () {ส่งคืนนี้ this.addzero (this.date.getday ()); } / * * ฟังก์ชั่น: รับรูปแบบ GUID ของเวลาปัจจุบันนั่นคือเวลา 8 หลักรวมถึงมิลลิวินาทีและมิลลิวินาทีคือ 2 หลัก: 12300933 * ค่าคืน: ส่งคืนสตริงของรูปแบบ GUID วันที่ * / guid.prototype.getGuidTime = function () {return this.addzero this.addzero (this.date.getMinutes ()) + this.addzero (this.date.getSeconds ()) + this.addzero (this.date.getSeconds ()) + this.addzero (parseInt (this.date.getMilliseconds () / 10) } / * * ฟังก์ชั่น: เพิ่ม 0 ลงในจำนวนเต็มบวกของตัวเลขหลักเดียว หากเป็นสตริงที่สามารถแปลงเป็นหมายเลขที่ไม่ใช่ NAN ก็สามารถนำไปใช้ได้ พารามิเตอร์: พารามิเตอร์ระบุว่าจำนวน 0 ถูกเตรียมที่จะเพิ่มก่อนหรือสตริงที่สามารถแปลงเป็นตัวเลข* ค่าส่งคืน: หากเงื่อนไขเป็นไปตามเงื่อนไขให้ส่งคืนประเภทสตริงหลังจากเพิ่ม 0 มิฉะนั้นมันจะส่งคืนสตริงของตัวเอง*/ guid.prototype.addzero = function (num) Math.Floor (NUM); } else {return num.toString (); }} /** ฟังก์ชั่น: แปลงค่า y-digit เป็นค่า X-Digit* พารามิเตอร์: พารามิเตอร์แรกแสดงถึงค่าที่จะแปลง; พารามิเตอร์ที่สองแสดงถึงไบนารีที่จะแปลง; พารามิเตอร์ที่สามเป็นทางเลือกแทนหมายเลขไบนารีปัจจุบันถ้าไม่ได้เขียนมันคือ 10 * ค่าส่งคืน: ส่งคืนสตริงที่แปลง */ guid.prototype.hexadecimal = ฟังก์ชัน (num, x, y) {ถ้า (y! = undefined) {ส่งคืน } else {return parseInt (num.toString ()). toString (x); }} /** ฟังก์ชั่น: รูปแบบ 32 บิตสตริงไปยังสตริงในโหมด GUID* พารามิเตอร์: พารามิเตอร์แรกหมายถึงสตริง 32 บิต* ค่าส่งคืน: สตริงในรูปแบบ GUID มาตรฐาน* / guid.prototype.formatguid = function (guidstr) {var str1 = guidstr.slice (0, 8) + '-' Guidstr.slice (12, 16) + '-', str4 = guidstr.slice (16, 20) + '-', str5 = guidstr.slice (20); ส่งคืน str1 + str2 + str3 + str4 + str5; -วัตถุ GUID
เพียงบันทึกไว้ในไฟล์ JS และอ้างอิง
จากนั้นเราก็ต้องการมัน
การคัดลอกรหัสมีดังนี้:
var guid = new guid ();
การแจ้งเตือน (guid.newGuid ());
คุณสามารถรับรหัส GUID
หลักการดำเนินการเป็นเรื่องง่ายมาก ที่นี่เราเพิ่งใช้เวลาระบบและมากกว่า 18 หมายเลขสุ่ม hexadecimal และแปลงเวลาระบบเป็น hexadecimal แม้ว่าจะยังคงเป็นไปได้ที่จะทำซ้ำความน่าจะเป็นของการทำซ้ำนั้นต่ำมากและสามารถละเว้นได้
ข้างต้นเป็นวิธีการสร้าง GUID ที่เขียนโดยฉัน หากมีวิธีที่ดีกว่าโปรดบอกฉันขอบคุณ!