في التخزين المحلي لـ HTML5 ، توجد قاعدة بيانات تسمى INSPLEDDB. من الجزء السابق: سلسلة HTML5 المتقدمة: تخزين الويب ، نعلم أن تخزين الويب يمكنه بسهولة الوصول إلى بيانات بسيطة في الوصول المحلي ، ولكن بالنسبة لعدد كبير من التخزين المنظم ، فإن مزايا الفهرسة أكثر وضوحًا. بعد ذلك ، دعونا نلقي نظرة على كيفية تخزين DostedDB.
توصيل قاعدة البياناتيمكن أن يحتوي موقع ويب واحد على قواعد بيانات INSEDDB متعددة ، ولكن اسم كل قاعدة بيانات فريدة من نوعها. نحتاج إلى توصيل قاعدة بيانات معينة من خلال اسم قاعدة البيانات.
Var Research = indexedDB.Open ('dbname' ، 1) ؛ } طلب.
نستخدم طريقة مفهرسها لتوصيل قاعدة البيانات. ستعود هذه الطريقة إلى كائن IdBoPendBrequest لتمثيل كائن طلب يطلب قاعدة بيانات. يمكننا تحديد الطريقة التي يكون فيها الاتصال ناجحًا أو فشل في تنفيذها من خلال مراقبة أحداث OnSuccccess و Onerror لكائن الطلب.
نظرًا لأن مستودع البيانات في قاعدة البيانات لا يسمح لمستودع قاعدة البيانات بالتغيير في نفس الإصدار ، فإن رقم الإصدار الجديد مطلوب لتحديث الإصدار في طريقة المفهرس. Open لتجنب تعديل قاعدة البيانات في نفس الإصدار. يجب أن يكون رقم الإصدار عددًا صحيحًا!
Var Research = indexedDB.Open ('dbname' ، 2) IS = IS = IS = = ' + E.Newversion) ؛}
نحدد الطريقة التي يتم تنفيذها عند تحديث إصدار قاعدة البيانات من خلال مراقبة الحدث الذي تم تحريره على كائن الطلب.
قم بإيقاف تشغيل قاعدة البياناتبعد استخدام مفهرسها للاتصال بنجاح قاعدة البيانات ، سيتم إرجاع كائن IDBOPENDBREQUEST.
Var Research = indexedDB.Open ('dbname' ، 2) ؛ Close () ؛حذف قاعدة البيانات
indexeddb.deletedatabase ('dbname') ؛إنشاء مستودع كائن
متجر الكائن هو أساس قاعدة بيانات INSTERDB.
Var Research = indexedDB.Open ('dbname' ، 3) ؛ "userId" ، Autoincrement: false}) ؛
DB.CreateBjectStore طريقة تستقبل معلمتين. خاصية Keypath في هذا الكائن هي المفتاح الرئيسي ، وهو ما يعادل المعرف في جدول قاعدة البيانات كمفتاح رئيسي. سمة AutoIincrement خاطئة ، مما يعني أن قيمة المفتاح الرئيسية لا تزيد من تلقاء نفسها.
ملاحظة: في قاعدة البيانات ، لا يمكن تكرار اسم مستودع الكائن ، وإلا فإن المتصفح سيقوم بالإبلاغ عن خطأ.
إنشاء فهرسفي قاعدة بيانات الفهرسة ، يتم إنشاء فهرس من خلال سمة معينة من كائن البيانات.
Var Research = indexedDB.Open ('dbname' ، 4) ؛ "userId" ، Autoincrement: false}) ؛
تتلقى Store.CreateInd ثلاثة معلمات. القيمة هي كائن JS. الخاصية الفريدة في هذا الكائن صحيحة ، مما يعني أن قيمة الفهرس لا يمكن أن تكون هي نفسها ، أي اسم المستخدم للبيانات لا يمكن أن يكون هو نفسه ، ويمكن أن يكون خطأ.
الشؤونفي الفهرسة ، لا يمكن تنفيذ جميع عمليات البيانات إلا في الشؤون. بعد نجاح قاعدة البيانات ، يمكنك استخدام طريقة المعاملة لكائن IdBoPendBrequest لفتح فقط القراءة أو القراءة والكتابة معاملات.
Var Research = INSTERDB.Open ('dbname' ، 5) ؛ tx.oncomplete = function (e) {console.log ('انتهى المعاملة') ؛} tx.onabort = function (e) {console.log ('تم تعليق المعاملة') ؛}}
تتلقى طريقة db.transaction معلمتين. المعلمة الثانية هي وضع المعاملة. يمكن أن تنتقل إلى القراءة لقراءة العمليات والكتابة.
بيانات التشغيلVar Research = indexedDB.Open ('dbname' ، 5) ؛ '،' ، 'readwrite') ؛ القيمة) ؛ حذف (1) }}}}}}
يتشابه دور ADD و PUT. واستخدام إضافة لحفظ البيانات.
بيانات الاسترجاعنعلم أعلاه يمكن الحصول على بيانات باستخدام طريقة GET () ، ولكن هناك حاجة إلى قيمة المفتاح الرئيسي. إذا أردنا الحصول على مجموعة من البيانات ، فيمكننا استخدام المؤشر. تم إنشاء المؤشر وفتحه بواسطة طريقة OpenCursor لمستودع الكائن.
تتلقى طريقة OpenCursor معلمتين.
// تمثل Boundrange مجموعة من قيم المفاتيح الأساسية من 1 إلى 10 (بما في ذلك 1 و 10). // إذا كانت المعلمة الثالثة صحيحة ، فهذا يعني أن الحد الأدنى لقيمة المفتاح ليس 1. إذا كانت المعلمة الرابعة صحيحة ، فهذا يعني أنها لا تحتوي على أقصى قيمة مفتاح 10 ، وأن الافتراضي هو passalvar boundrange = idbkeyrande.bound (1 ، 10 ، خطأ كاذب ، خطأ) ؛ المعلمة الوحيدة () هي قيمة المفتاح الرئيسي ، ونوع عدد صحيح. varmingRange = idbkeyrange.only (1) ؛ // المعلمة الثانية اختيارية ، مما يعني أن True لا يتضمن الحد الأدنى من المفتاح الأساسي ، وينطق بالتخلي عن السداد إلى logerrange = idbkeyrange. القيمة الرئيسية الأساسية أقل من 10 جوهر .
تمثل المعلمة الثانية لطريقة OpenCursor اتجاه القراءة للمؤشر.
Var Research = indexedDB.Open ('dbname' ، 6) ؛ '،' ، '،' readwrite ') ؛ ؛ }
عندما تكون هناك بيانات تلبي شروط البحث ، يمكنك تحديث البيانات من خلال طريقة التحديث:
cursor.updata ({userId: cursor.key ، اسم المستخدم: 'hello' ، العمر: 18}) ؛
يمكن حذف هذه البيانات من خلال طريقة الحذف:
Cursor.Delete () ؛
يمكنك متابعة قراءة البيانات التالية من خلال طريقة constinue ، وإلا فلن تستمر في القراءة بعد قراءة الجزء الأول من البيانات:
cursor.continue () ؛لخص
من توصيل قواعد البيانات ، إنشاء مستودعات الكائنات ، الفهارس ، إلى تشغيل بيانات الاسترجاع واسترجاعها ، أكمل العملية الكاملة لبيانات الوصول إلى INSEDDB. فيما يلي من خلال مثال كامل لفهم قاعدة بيانات INSTEDDB بشكل أفضل. عنوان الرمز: INSEDDB-DEMO
ما سبق هو كل محتويات هذا المقال.