سؤال

لدي كائن يحتوي على بيانات ذات صلة بواجهة مستخدم المستخدم.في الوقت الحالي ، تأتي البيانات في شكل json ، أقوم بتشغيل JSON.parse لتقييم الكائن وإنشاء بعض HTML وفقًا لذلك.

أفكر في تخزين سلسلة json في تخزين الجلسة المحلية (وليس التخزين المحلي) واستدعائها في كل مرة تحتاج فيها واجهة المستخدم إلى التحديث بـ HTML الجديد.بهذه الطريقة ، إذا فتح المستخدم صفحة أخرى في نفس المتصفح ، فستكون جميع HTML لجميع الصفحات متطابقة.

في الوقت الحالي ، يتم تخزين الكائن في الذاكرة وتعمل التفاعلات بين إجراءات المستخدم على واجهة المستخدم وتعديلات الكائن بسرعة.إذا قمت بتسلسلها وتخزينها في تخزين الجلسة ، فهل ستخزن المتصفحات البيانات في ذاكرة الوصول العشوائي أو على القرص الصلب وتبطئ الصفحة؟

هل كانت مفيدة؟

المحلول

مأخوذة من مواصفات html5:

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

مما يعني أن المتصفحات قد تخزن هذه المعلومات على القرص.

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

نصائح أخرى

أجريت هذا الاختبار الصغير FF 32 و Chrome 37 و IE 11. من أجل المتعة فقط. Genacodicetagpre

FF

  • الجلسة: 830 مللي ثانية
  • الذاكرة: 92 مللي ثانية
  • محلي: 1156 مللي ثانية

Chrome

  • الجلسة: 2852 مللي ثانية
  • الذاكرة: 147 مللي ثانية
  • محلي: 2893 مللي ثانية

IE

  • الجلسة: 977 مللي ثانية
  • الذاكرة: 81 مللي ثانية
  • محلي: 15062 مللي ثانية

بعد الانتهاء من اختبار نافذة المتصفح ، تجمدت لبضع ثوان وزاد نشاط CPU + Disk (بسبب التخزين المحلي).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top