يشير GUID (Global Unified Imansifiier) إلى الرقم الذي تم إنشاؤه على الجهاز ، مما يضمن أنه فريد من نوعه لجميع الآلات في نفس المساحة والوقت. عادة ما يوفر النظام الأساسي واجهة برمجة تطبيقات لتوليد GUIDS. خوارزمية التوليد مثيرة للاهتمام للغاية ، باستخدام عنوان بطاقة Ethernet ووقت NanoSecond ورمز معرف الرقاقة والعديد من الأرقام الممكنة. العيب الوحيد لـ GUID هو أن سلسلة النتائج التي تم إنشاؤها ستكون كبيرة نسبيًا.
تنسيق GUID هو:
يعلم الجميع أن GUID ليس مفيدًا جدًا في التطوير الأمامي ، ولكن إذا كنت بحاجة إلى إدراج معرف وهذا المعرف يتوافق مع الخلفية ، وما إلى ذلك ، لا يزال بإمكاننا إنشاء GUID للراحة.
من السهل جدًا توليد GUIDs في الخلفية أو لغات قاعدة البيانات مثل SQL و Java و C#وما إلى ذلك ، لكن الواجهة الأمامية لا تحتوي على طريقة لإنشاء GUIDS مباشرة ، بحيث يمكنك كتابة واحدة فقط بنفسك. ومع ذلك ، لأن GUID يحتاج إلى الحصول على عنوان بطاقة Ethernet والوقت في النانو ثانية. من الصعب الحصول على هذه المعلومات من الواجهة الأمامية (من فضلك أخبرني إذا كنت تعرف عن أحذية الأطفال) ، ويمكننا محاكاة التنفيذ وإنشاء GUID ، والرمز هو كما يلي:
/*
* الوظيفة: قم بإنشاء رمز GUID ، حيث يتكون GUID من أقل من 14 تاريخًا وأوقاتًا وأكثر من 18 أرقام عشوائية سدارية. GUID لديه احتمال تكرار معين ، ولكن احتمال التكرار منخفض للغاية. من الناحية النظرية ، يكون احتمال التكرار 1/(16^18) لكل 10 مللي ثانية ، أي جزء واحد إلى قوة 16 ، واحتمال التكرار منخفض بقدر ضئيل*/
الدالة guid () {this.date = new date () ؛/* تحديد ما إذا كانت قد تمت تهيئتها. إذا تمت تهيئة الرمز التالي ، فلن يتم تنفيذ الرمز التالي. في الواقع ، لن يتم تنفيذها إلا مرة واحدة*/if (typeof this.newguid! = 'function') {/*إنشاء رمز guid*/guid.prototype.newguid = function () {this.date = new date () ؛ var guidster = '' ؛ this.hexadecimal (this.getGuidTime () ، 16) ؛ لـ (var i = 0 ؛ i <9 ؛ i ++) {guidstr += math.floor (math.random ()*16) .ToString (16) ؛} guidstr += sexadecimaldate ؛ guidstr += sexadcimaltime ؛ بينما (guidstr.length <32) {guidstr += math.floor (math.random ()*16) .ToString (16) ؛} إرجاع هذا. function () {return this.date.getlyear () + this.addzero (this.date.getMonth () + 1) + this.addzero (this.date.getday ()) ؛ تنسيق*/guid.prototype.getGuIdTime = function () {return this.addzero (this.date.gethours ()) الوظيفة: أضف 0 إلى عدد صحيح موجب من رقم واحد. إذا كانت سلسلة يمكن تحويلها إلى رقم غير نان ، فيمكن تنفيذها أيضًا. المعلمات: تشير المعلمات إلى أن الرقم الذي يتم استعداده لإضافته من قبل أو سلسلة يمكن تحويلها إلى رقم* قيمة الإرجاع: إذا تم استيفاء الشرط ، فأرجع نوع السلسلة بعد إضافة 0 ، وإلا فإنه سيعيد السلسلة الخاصة به*/guid.prototype.addzero = function (num) {if (num). Math.Floor (num) ؛} آخر {return num.toString () ؛}}/** الوظيفة: تحويل قيمة y الرقم إلى القيمة x الرقم* المعلمات: تمثل المعلمة الأولى القيمة المراد تحويلها ؛ تمثل المعلمة الثانية الجسيم المراد تحويله ؛ المعلمة الثالثة اختيارية ، تمثل رقم الجسيمات الحالي ، إن لم يكن مكتوبًا ، فهو 10* قيمة الإرجاع: إرجاع السلسلة المحولة*/guid.prototype.hexadecimal = function (num ، x ، y) {if (y! = undefined) {return parseint (num.toString () ، y) .toString (x) ؛ parseint (num.ToString ()) Guidstr.Slice (8 ، 12) + '-' ، str3 = guidstr.slice (12 ، 16) + '-' ، str4 = guidstr.slice (16 ، 20) + '-' ، str5 = guidstr.slice (20) ؛ return str1 + str2 + str3 + str4 + str5 ؛}}}}}}}}}}}}}}}}}}}}}}}}}}}}كائن GUID
فقط حفظه في ملف JS والرجوع إليه.
ثم نحتاج فقط
var guid = new Guid () ؛
تنبيه (Guid.NewGuid ()) ؛
يمكنك الحصول على رمز GUID.
مبدأ التنفيذ بسيط للغاية. هنا نستخدم فقط وقت النظام وأكثر من 18 أرقام عشوائية سداسية عشرية ، ونحول وقت النظام إلى سداسي عشري. على الرغم من أنه لا يزال من الممكن التكرار ، إلا أن احتمال التكرار منخفض للغاية ويمكن تجاهله.