عبارة «بيانات الموقع» تخفي مجموعة APIs مختلفة جدًا. Cookie يمكن أن تمثل Session ID، IndexedDB قد تحمل قاعدة بيانات كاملة، Cache Storage يحتفظ ب Responses، و Service Worker قد يعترض الطلبات. إذا أردت إثبات أن Profiles معزولة، يجب أن تعرف هذه الطبقات وتختبرها بدل الضغط على Clear cookies ثم افتراض أن كل شيء انتهى.
Cookies: طبقة المصادقة الأكثر وضوحًا
Cookies لها Domain و Path و SameSite و Secure وقد تكون HttpOnly. فصل Cookie jar بين Profiles أساسي، لكنه لا يكفي. سجل cookies قبل وبعد login واعرف أيها تختفي عند logout وأيها تستمر.
IndexedDB: بيانات منظمة وطويلة العمر
تطبيقات حديثة تستخدم IndexedDB لحفظ رسائل أو drafts أو metadata أو offline data. قاعدة قد تبقى بعد logout إذا لم يمسحها التطبيق. لذلك فحص IndexedDB مهم عند نقل Profile أو محاولة تنظيف حساب قديم.
خطوات عملية
- سجل أسماء قواعد البيانات.
- راجع object stores الرئيسية.
- قارن قبل/بعد login.
- اختبر logout ثم أعد الفحص.
- لا تحذف قاعدة مجهولة في الإنتاج قبل Backup.
Cache Storage و Service Workers
Progressive Web Apps تستخدم Cache Storage مع Service Workers. نسخة قديمة من Resource أو Worker مسجل يمكن أن يغير سلوك الموقع حتى بعد تنظيف cookies. عند تشخيص صفحة تستمر في سلوك قديم، راجع هذه الطبقات قبل لوم الخادم.
قائمة مراجعة
- Cache names معروفة.
- Service Worker registrations منفصلة.
- Clear-site-data procedure تشمل الطبقات المطلوبة.
- Profile B لا ترى Cache من A.
- التنظيف لا يزيل بيانات ضرورية بلا Backup.
SessionStorage و LocalStorage
LocalStorage طويلة العمر نسبيًا ومربوطة بال Origin، بينما SessionStorage مرتبطة بسياق التصفح وتختلف في دورة حياتها. لا تتعامل مع الاثنين كشيء واحد عند النقل أو الاختبار. اكتب markers واضحة لكل مخزن وتحقق من السلوك بعد إغلاق التبويب وإعادة فتحه.
ابنِ اختبار Regression للعزل
أنشئ صفحة اختبار تكتب قيمًا فريدة في كل Storage API، ثم افتح نفس Origin من Profile أخرى. الاختبار الآلي بعد تحديث Electron/Chromium يحميك من Regression في partitioning أفضل من فحص يدوي متأخر.
ميز بين الحذف والتنظيف الانتقائي
Clear all data حل قوي لكنه ليس دائمًا الأفضل، خصوصًا عند وجود Drafts أو Offline content مهمة. وفر مسارًا يوضح للمستخدم ما الذي سيُحذف: cookies فقط، storage كاملة، caches، أو service workers. التنظيف الانتقائي يجعل التشخيص أفضل؛ فإذا حلت المشكلة بعد حذف Cache فقط، تعرف أن الجلسة نفسها لم تكن السبب.
وثق نتيجة التنظيف
بعد أي حذف أو reset، سجل الطبقات التي مسحتها ونتيجة الموقع بعدها. إذا اختفت المشكلة بعد مسح Service Worker دون Cookies، فهذه معلومة مهمة يجب ألا تضيع. سجل بسيط يحول عمليات الدعم المتكررة إلى معرفة قابلة لإعادة الاستخدام بدل تجارب تبدأ من الصفر كل مرة.
شارك في تقييم ونقاش المقال
رأيك يضيف قيمة للمقال ويساعدنا على تحسين المحتوى والنقاش حوله.
النقاش
جارٍ تحميل التعليقات…