INSTEDDB هي واجهة برمجة تطبيقات منخفضة المستوى تخزن عددًا كبيرًا من البيانات المنظمة (بما في ذلك الملف/ النقط) لتخزين العميل. يستخدم API فهرس لتحقيق البحث عالي الأداء عن البيانات.
في الآونة الأخيرة ، هناك احتياجات عمل يمكنها تخزين البيانات في وضع عدم الاتصال ، ويمكن تحميل النموذج والصور عندما تكون هناك إشارات الشبكة. لذلك درست الفهرسة من HTML5.
للحصول على احتياجات تخزين بعض الحقول فقط ، يمكن استخدام التخزين المحلي وتخزين الجلسة لإكماله. ولكن بمجرد تخزين كمية كبيرة من البيانات ، فإن التخزين المحلي وتخزين الجلسة بعيدا عن تلبية الاحتياجات. في هذا الوقت ، سوف تنعكس قوة الفهرسة.
1. إنشاء أو فتح قاعدة البيانات/* متوافق مع المتصفحات المختلفة 'indexeddb*/const indexeddb = window. الإصدار) ؛
نظرًا لأن INSTEDDB متوافق مع المتصفحات المختلفة ، نحتاج إلى جزء من الوظيفة لتكون متوافقة مع الفهرسة.
2. وظيفة رد الاتصال متصلة بقاعدة البياناتrequest.addeventListener ('Success' ، function (event) {// فتح أو إنشاء نجاح قاعدة البيانات} ، false) ؛ ) ؛
بعد الاتصال بقاعدة البيانات ، سوف يستمع الطلب إلى ثلاث ولايات:
تتمثل الحالة الترقية في مراقبة هذه الحالة عندما تقوم INSEDDDB بإنشاء قاعدة بيانات جديدة و INSPLEDB.Open (اسم ، إصدار) (رقم إصدار قاعدة البيانات). عندما لا يتغير رقم الإصدار ، لن يتم تشغيل هذه الحالة. يتم تنفيذ إنشاء وحذف كائن قاعدة البيانات ضمن حدث المراقبة هذا.
3. إنشاء وحذف ObjectStoreفي الفهرسة ، يشبه ObjectStore جدول قاعدة البيانات.
request.adDeventListener ('updregeneed' ، function (event) {// إنشاء مثيل قاعدة بيانات const db = event.target.result ؛ // قم بإيقاف تشغيل قاعدة البيانات db.close () ؛ // bkystorenames.contains (ObjectStorename) ؛/ / حذف ObjectStore db.deleteObjectStore (ObjectStorEname) ؛} ، false) ؛
يمكنك استخدام الطريقة التالية لإنشاء كائن
request.addeventListener ('updregeneed' ، function (event) {// إنشاء مثيل قاعدة بيانات const db = event.target.result ؛ db. createObjectStore (ObjectStorEname ، {keypath: keypath // keypath as search corders as ObjectStore}) ؛ الفهرس فريد}) ؛}} ، خطأ) ؛4. إضافة البيانات ، الحذف ، تغيير التحقق
request.addeventListener ('Success' ، function (event) {// إنشاء مثيل قاعدة بيانات const db = event.target.result ؛ عندما يمكن قراءة البيانات وكتابتها // عندما تكون البيانات "قراءًا" ، فإن البيانات تقرأ فقط Const Store = Transaction.ObjectStore (ObjectStorEname) ؛} ، false) ؛
إضافة قاعدة البيانات والحذف والتغيير:
// إضافة البيانات. مخزن البيانات المقابل (القيمة) المقابلة للكلمات الرئيسية المحددة ؛ ('Success' ، function (event) {// وظيفة رد الاتصال} ، false) ؛
ابحث عن البيانات وفقًا للفهارس
const index = store.index (indexname) ؛ value // data result.continue () ؛
ابحث عن البيانات وفقًا لنطاق الفهرس
const index = store.index (indexname) ؛ كائن idbkeyrange هو بيانات النطاق المحدد للنطاق المحدد للشرط وفقًا للشروط*/// أكبر من أو أكثر من أو يساوي النطاق = idbkeyrange.lowerBound (القيمة ، صواب) // (القيمة ، + ∞) ،> valuerange = idbkeyrange. (القيمة ، isopen) // أكبر من أو تساوي Value1 ، أصغر من أو يساوي Value2IdBkeyRange.bound (value1 ، value2 ، isOpen1 ، isOpen2)
أخيرًا ، يتم تغليف مكتبة INSTERDB بنفسي.
ما سبق هو التخزين المحلي HTML5 الذي قدمه Xiaobian. شكرا جزيلا لدعمكم لموقع VEVB Wulin!