من المهم اختيار آليات التخزين المناسبة، سواءً للتخزين على الجهاز أو التخزين على الخادم المستنِد إلى السحابة الإلكترونية. يضمن محرّك التخزين الجيد حفظ معلوماتك بشكل موثوق، ويقلل من معدل نقل البيانات، ويحسن وقت الاستجابة. إنّ استراتيجية التخزين المؤقت المناسبة هي لبنة أساسية ل تفعيل تجارب المواقع الإلكترونية المتوافقة مع الأجهزة الجوّالة بلا إنترنت.
تقدّم هذه المقالة أساسًا موجزًا لتقييم واجهات برمجة التطبيقات وخدمات التخزين، وبعد ذلك سنقدّم جدول مقارنة وبعض الإرشادات العامة. في المستقبل القريب، نخطّط لإضافة موارد لفهم مواضيع التخزين المحدّدة بشكل معمّق.
تصنيف مساحة التخزين
لنبدأ بفهم بعض السمات التي يمكننا من خلالها تحليل سعة تخزين البيانات لتطبيقات الويب. سنستخدم هذا الإطار في وقت لاحق لتعداد وتقييم خيارات التخزين العديدة المتاحة لمطوّري الويب.
نموذج البيانات
يحدِّد نموذج تخزين وحدات البيانات كيفية تنظيم البيانات داخليًا، ويؤثّر ذلك في سهولة الاستخدام وتكلفة طلبات التخزين والاسترجاع وأداءها.
منظَّمة: البيانات المخزّنة في الجداول التي تحتوي على حقول محدّدة مسبقًا، كما هو الحال في أنظمة إدارة قواعد البيانات المستندة إلى SQL، تتوافق بشكل جيد مع الاستعلامات المرنة والدّينية، حيث قد لا تكون المجموعة الكاملة لأنواع الاستعلامات معروفة مسبقًا. من الأمثلة البارزة على قاعدة بيانات منظَّمة في المتصفّح IndexedDB.
المفتاح/القيمة: توفّر أنظمة تخزين البيانات المستندة إلى المفتاح/القيمة وقواعد بيانات NoSQL ذات الصلة إمكانية تخزين البيانات غير المنظَّمة واستردادها من خلال فهرستها باستخدام مفتاح فريد. تشبه مستودعات بيانات المفاتيح/القيم جداول التجزئة من حيث أنّها تسمح بالوصول في وقت ثابت إلى البيانات غير الشفافة المفهرَسة. من الأمثلة البارزة على قواعد بيانات المفاتيح/القيم Cache API في المتصفّح وApache Cassandra على الخادم.
مصادر البيانات: يخزِّن هذا النموذج البسيط البيانات على هيئة سلسلة غامضة بطول متغيّر من البايتات، ويترك أي شكل من أشكال التنظيم الداخلي لطبقة التطبيق. يُعدّ هذا النموذج جيدًا بشكل خاص لأنظمة الملفات وغيرها من مجموعات البيانات التي يتم تنظيمها هيدراركليًا. تشمل الأمثلة البارزة على مستودعات بيانات تدفق البايت أنظمة الملفات وخدمات التخزين في السحابة الإلكترونية.
الاستمرارية
يمكن تحليل طرق التخزين لتطبيقات الويب وفقًا للنطاق الذي يتم فيه تثبيت البيانات.
استمرارية الجلسة: لا يتم الاحتفاظ بالبيانات في هذه الفئة إلا ما دامت جلسة ويب أو علامة تبويب متصفّح واحدة نشطتَين. ومن الأمثلة على آلية تخزين التي تتضمّن ميزة الاحتفاظ بالجلسة واجهة برمجة التطبيقات Session Storage API.
الثبات على الجهاز: يتم الاحتفاظ بالبيانات في هذه الفئة على مستوى الجلسات وعلامات التبويب/نوافذ المتصفّح ضمن جهاز معيّن. من الأمثلة على آلية تخزين التي تحافظ على البيانات على الجهاز واجهة برمجة التطبيقات Cache API.
الثبات على مستوى التطبيق: يتم الاحتفاظ بالبيانات في هذه الفئة على مستوى الجلسات والأجهزة. وبالتالي، فهو الشكل الأكثر فعالية للحفاظ على البيانات. ومن الأمثلة على آلية التخزين التي تتضمّن ثباتًا عالميًا هي Google Cloud Storage.
توافق المتصفّح
على المطوّرين اختيار واجهة برمجة تطبيقات تناسب نطاق المشكلة على أفضل وجه، ومع ذلك، يجب أن يأخذوا أيضًا في الاعتبار أنّ واجهات برمجة التطبيقات المُعَدَّة والمُعتمَدة بشكل جيد هي أفضل من الواجهات المخصّصة أو المملوكة، لأنّه يُرجّح أن تستمر لفترة أطول وأن تكون متوافقة على نطاق أوسع. وقد يستفيدون أيضًا من قاعدة معلومات أوسع ومنظومة متكاملة أكثر شمولاً للمطوّرين.
المعاملات
غالبًا ما يكون من المهم أن تنجح مجموعة من عمليات التخزين ذات الصلة أو تفشل بشكل موحّد. كانت أنظمة إدارة قواعد البيانات تقدّم هذه الميزة باستخدام نموذج المعاملات، حيث يمكن تجميع التعديلات ذات الصلة في وحدات عشوائية. على الرغم من أنّ هذه الميزة ليست ضرورية في بعض الأحيان، إلا أنّها ميزة ملائمة وأساسية في بعض مجالات المشاكل.
متزامن/غير متزامن
تكون بعض واجهات برمجة التطبيقات لمساحة التخزين متزامنة بمعنى أنّ طلبات التخزين أو الاسترجاع تحظر سلسلة المحادثات النشطة حاليًا إلى أن يكتمل الطلب. ويُعدّ هذا الإجراء صعبًا بشكل خاص في متصفّحات الويب، حيث يشارك طلب مساحة التخزين سلسلة المحادثات الرئيسية مع واجهة المستخدم. لأسباب تتعلّق بالكفاءة والأداء، يُفضّل استخدام واجهات برمجة التطبيقات للوصول إلى مساحة التخزين غير المتزامنة.
تصحيح أخطاء مساحة التخزين في "أدوات مطوّري البرامج في Chrome"
اطّلِع على المستندات التالية لمعرفة المزيد من المعلومات عن استخدام "أدوات مطوّري البرامج في Chrome" لفحص واجهة برمجة التطبيقات لمساحة التخزين على الويب التي تختارها وتصحيح أخطائها. واجهات برمجة التطبيقات التي لم تتم الإشارة إليها هنا إما غير متوافقة مع أدوات مطوّري البرامج أو غير قابلة للتطبيق.
إذا كنت تستخدم واجهات برمجة تطبيقات متعددة لمساحة التخزين، يمكنك الاطّلاع على ميزة "محو مساحة التخزين" في DevTools. تتيح لك هذه الميزة محو بيانات متاجر متعددة بنقرة واحدة. اطّلِع على محو مهام الخدمة ومساحة التخزين وقواعد البيانات وملفّات التخزين المؤقت للحصول على مزيد من المعلومات.
أماكن ننصحك بزيارتها…
بعد أن راجعنا بعض الطرق ذات الصلة للتفكير في آليات التخزين وقارنّا بين واجهات برمجة التطبيقات والخدمات الأكثر رواجًا المتاحة حاليًا، سنضيف قريبًا المزيد من المحتوى للتعمّق أكثر في موضوع واحد أو أكثر من المواضيع التي تهمّك: