احفظ القيم في كائن بيانات صغير ذي إصدار
بدلاً من حفظ النتيجة المجردة مثل 240، قم بتخزين كائن JSON مثل { version: 2, bestScore: 240, settings: { sound: true } }. عند التحميل، قم بتحليل النص، وتأكد من أنه كائن، وافحص نسخته قبل استخدام الحقول. يمكن لـ JSON.parse أن يلقي خطأ SyntaxError لـ JSON غير الصالح، لذا تعامل مع النص المشوه باستخدام احتياطي محدد بدلاً من السماح لبدء التشغيل بالتوقف قبل أن يتمكن المشغل من البدء.
اجعل كائن البيانات صغيرًا ووثّق معنى كل إصدار. لا تعتبر رقم الإصدار وحده تحققًا كافيًا؛ فقد تكون القيمة الموسومة بالإصدار 2 غير مكتملة أو من نوع خاطئ. تحقّق من الحقول التي يعتمد عليها الإصدار الحالي فعلًا، مثل bestScore التي يجب أن تكون عددًا منتهيًا غير سالب، وتفضيل الصوت الذي يجب أن يكون قيمة منطقية.
اكتب عملية ترحيل لكل تنسيق قديم مدعوم
يمكن لعملية الترحيل من الإصدار 1 تحويل الرقم القديم إلى كائن البيانات الجديد، وإضافة إعداد افتراضي، ثم حفظه بتنسيق الإصدار 2. عند دعم عدة إصدارات سابقة، نفّذ عمليات الترحيل بالتتابع: من الإصدار 1 إلى 2، ثم من 2 إلى 3. اختبر كل حالة اختبار على حدة، بما في ذلك مفتاح مفقود، وJSON مشوه، وإصدار مستقبلي غير معروف، وقيمة لم تُكتب بالكامل. قرر ما إذا كنت ستحتفظ بالبيانات غير المعروفة أو تتجاهلها أو تعيد ضبطها، واعرض رسالة استرداد عند الحاجة.
راعِ حدود تخزين المتصفح
تصف MDN localStorage بأنها بيانات مرتبطة بالأصل وقد تستمر بين جلسات المتصفح. لكن توفرها ومحتواها ليسا نسخة احتياطية مضمونة للحساب. لا تحفظ فيها أسرارًا أو قرارات يجب الوثوق بها. إذا تعذرت على اللعبة قراءة ملف الحفظ، فاسمح ببدء محدد من جديد وتجنب إعادة محاولة عملية الترحيل الفاشلة نفسها عند كل تشغيل.
أسئلة عن إصدار بيانات لعبة LocalStorage
هل يجب علي مسح جميع عمليات الحفظ عند تغيير التنسيق؟
فقط عندما يكون هذا قرارًا صريحًا بشأن المنتج. إذا كان من الممكن تعيين القيم المهمة بأمان، فيمكن لعملية ترحيل صغيرة تم اختبارها الحفاظ عليها؛ وإلا حدد احتياطيًا واضحًا واشرح إعادة التعيين.
هل يجعل حقل الإصدار بيانات التخزين المحلي موثوقة؟
لا، فهو يحدد الشكل المتوقع حتى تتمكن اللعبة من ترحيله أو رفضه. قد تظل البيانات مفقودة، أو مشوهة، أو قديمة، أو غير متوفرة، لذا تحقق من صحتها قبل استخدامها.
للمزيد من القراءة
هل لاحظت معلومة قديمة؟ الإبلاغ عن تصحيح