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 และความน่าจะเป็นซ้ำ
ฟังก์ชั่น guid () {this.date = new date ();/* พิจารณาว่าได้รับการเริ่มต้นหรือไม่ หากรหัสต่อไปนี้เริ่มต้นรหัสต่อไปนี้จะไม่ถูกเรียกใช้งานอีกต่อไป ในความเป็นจริงมันจะถูกดำเนินการเพียงครั้งเดียว*/if (typeof this.newguid! = 'function') {/*สร้างรหัส Guid*/guid.prototype.newguid = function () {this.date = new date (); var guidstr = '' sexadecimaldate = this.hexadecimal 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);} ส่งคืนสิ่งนี้ formatguid (guidstr);}/** ฟังก์ชั่น: รับรูปแบบ GUID ของวันที่ปัจจุบันนั่นคือวันที่ function () {return this.date.getlyear () + this.addzero (this.date.getMonth () + 1) + this.addzero (this.date.getday ());}/** ฟังก์ชั่น: รับรูปแบบ GUID ของเวลาปัจจุบัน */guid.prototype.getGuidTime = function () {return this.addzero (this.date.getHours ()) + this.addzero (this.date.getMinutes ()) + this.addzero (this.date.getSeconds () ฟังก์ชั่น: เพิ่ม 0 ลงในจำนวนเต็มบวกของหลักเดียว หากเป็นสตริงที่สามารถแปลงเป็นหมายเลขที่ไม่ใช่ NAN ก็สามารถนำไปใช้ได้ พารามิเตอร์: พารามิเตอร์ระบุว่าตัวเลขที่เตรียมไว้ก่อนหรือสตริงที่สามารถแปลงเป็นตัวเลข* ค่าส่งคืน: หากพบเงื่อนไขให้ส่งคืนประเภทสตริงหลังจากเพิ่ม 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) {return parseint parseInt (num.toString ()). toString (x);}}/** ฟังก์ชั่น: รูปแบบสตริง 32 บิตไปยังสตริงในโหมด GIAD* พารามิเตอร์: พารามิเตอร์แรกแสดงถึงสตริง 32 บิต* ค่าคืน: สตริงในรูปแบบ GUID มาตรฐาน*/guid.prototype.FormatGuid Guidstr.slice (8, 12) + '-', str3 = guidstr.slice (12, 16) + '-', str4 = guidstr.slice (16, 20) + '-', str5 = guidstr.slice (20); return str1 + str3 + str3 + str5;วัตถุ GUID
เพียงบันทึกไว้ในไฟล์ JS และอ้างอิง
จากนั้นเราแค่ต้องการ
var guid = new guid ();
การแจ้งเตือน (guid.newGuid ());
คุณสามารถรับรหัส GUID
หลักการดำเนินการเป็นเรื่องง่ายมาก ที่นี่เราเพิ่งใช้เวลาระบบและมากกว่า 18 หมายเลขสุ่ม hexadecimal และแปลงเวลาระบบเป็น hexadecimal แม้ว่าจะยังคงเป็นไปได้ที่จะทำซ้ำความน่าจะเป็นของการทำซ้ำนั้นต่ำมากและสามารถละเว้นได้