JavaScript

تخزين البيانات على جانب العميل في جافا سكريبت: ويب ستورج و إنديكسد دي بي

Spread the love

يُعد تخزين البيانات بشكل دائم أمرًا بالغ الأهمية للعديد من تطبيقات الويب. وبينما تعمل جافا سكريبت بشكل أساسي داخل المتصفح، إلا أن هناك عدة طرق تُمكّن من كتابة بيانات الملفات، إما محليًا أو على خادم بعيد. ويركز هذا المقال على تخزين البيانات على جانب العميل، وتحديدًا باستخدام واجهة برمجة تطبيقات تخزين الويب HTML5 المتعددة الاستخدامات وواجهة برمجة التطبيقات IndexedDB الأكثر قوة. بالنسبة للملفات الأكبر حجمًا أو المواقف التي تتطلب استمرارية على جانب الخادم، ستحتاج إلى الاستفادة من تقنيات وواجهات برمجة التطبيقات الخاصة بخادم، وهو موضوع خارج نطاق هذا المقال.

جدول المحتويات

استخدام واجهة برمجة تطبيقات تخزين الويب HTML5

توفر واجهة برمجة تطبيقات تخزين الويب HTML5 `localStorage` و `sessionStorage` لتخزين البيانات على شكل أزواج مفتاح-قيمة. يكمن التمييز الرئيسي في مدة بقائها:

  • `localStorage`: تستمر البيانات عبر جلسات المتصفح، وهي مثالية للإعدادات والتفضيلات.
  • `sessionStorage`: البيانات متاحة فقط داخل علامة تبويب أو نافذة متصفح واحدة، وهي مناسبة للبيانات المؤقتة الخاصة بالجلسة.

يستخدم كلاهما نفس الطرق:

  • `setItem(key, value)`: تخزين البيانات. المفتاح هو سلسلة نصية؛ والقيمة هي سلسلة نصية مُحوّلة.
  • `getItem(key)`: استرجاع البيانات؛ يُعيد `null` إذا كان المفتاح غير موجود.
  • `removeItem(key)`: إزالة عنصر محدد.
  • `clear()`: إزالة جميع العناصر.

مثال (localStorage):


// تخزين بيانات المستخدم
localStorage.setItem('userName', 'Jane Doe');
localStorage.setItem('theme', 'light');

// استرجاع وعرض اسم المستخدم
let userName = localStorage.getItem('userName');
console.log(userName); // مخرجات: Jane Doe

//التحقق من وجود مفتاح
if (localStorage.getItem('theme')) {
    console.log("تم العثور على تفضيل المظهر!");
}

//إزالة عنصر محدد
localStorage.removeItem('theme');

// مسح جميع البيانات
localStorage.clear();

مثال (sessionStorage): استبدل `localStorage` بـ `sessionStorage` في المثال أعلاه.

قيود تخزين الويب:

  • حدود الحجم: حوالي 5 ميجابايت لكل مصدر عادةً.
  • الأمان: يمكن الوصول إليها فقط ضمن نفس المصدر؛ ليست مناسبة للبيانات الحساسة.

الاستفادة من IndexedDB لمجموعات البيانات الأكبر حجمًا

IndexedDB هي قاعدة بيانات NoSQL قوية مدمجة في متصفحات الإنترنت الحديثة، مما يسمح بمجموعات بيانات أكبر بكثير وهياكل بيانات أكثر تعقيدًا من تخزين الويب. وهي تستخدم عمليات غير متزامنة وتتطلب نهجًا أكثر تنظيماً، ولكنها توفر قابلية التوسع والمرونة.

استخدام IndexedDB الأساسي:

يتضمن IndexedDB فتح قاعدة بيانات، وإنشاء مخازن كائنات (جداول)، ثم إجراء عمليات CRUD (إنشاء، قراءة، تحديث، حذف). يتم التعامل مع العمليات غير المتزامنة باستخدام الوعود أو الاستدعاءات العكسية.

ملاحظة: يخرج تنفيذ IndexedDB المفصل عن نطاق هذه المراجعة الموجزة، ولكن تتوفر العديد من البرامج التعليمية عبر الإنترنت.

استراتيجيات فعالة لإدارة البيانات

يعتمد اختيار آلية التخزين المناسبة على احتياجات تطبيقك. بالنسبة لكميات صغيرة من البيانات البسيطة، يعد تخزين الويب مناسبًا. بالنسبة لمجموعات البيانات الأكبر أو هياكل البيانات المعقدة، يوفر IndexedDB قابلية توسع ووظائف أفضل. ضع دائمًا في اعتبارك الآثار الأمنية وقم بتنفيذ معالجة الأخطاء المناسبة. يجب أن تُنبه آليات ملاحظات المستخدمين المستخدمين بشأن أي مشكلات تتعلق بالتخزين.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *