واجهة برمجة التطبيقات "التخزين المؤقت للصفحات" notRestoredreasons API

التعرّف على عمليات التنقّل التي تم حظرها من استخدام ذاكرة التخزين المؤقت للصفحات الخلفية والسبب

تعرض السمة notRestoredReasons، التي تمت إضافتها إلى الفئة PerformanceNavigationTiming، معلومات حول ما إذا كان قد تم حظر استخدام الإطارات المتوفّرة في المستند bfcache أثناء التنقّل، والسبب. يمكن للمطوّرين استخدام هذه المعلومات لتحديد الصفحات التي تحتاج إلى تحديثات لجعلها متوافقة مع bfcache، ما يؤدي إلى تحسين أداء الموقع الإلكتروني.

الوضع الحالي

تم طرح واجهة برمجة التطبيقات notRestoredReasons في الإصدار 123 من Chrome، ويتم طرحها تدريجيًا.

المفاهيم والاستخدام

توفّر المتصفّحات الحديثة ميزة تحسين للتنقّل في السجلّ تُعرف باسم ذاكرة التخزين المؤقت للصفحات (bfcache). ويتيح ذلك تجربة تحميل فوري عندما يعود المستخدمون إلى صفحة سبق لهم زيارتها. يمكن حظر الصفحات من الدخول إلى ذاكرة التخزين المؤقت أو إزالتها أثناء وجودها في ذاكرة التخزين المؤقت لأسباب مختلفة، بعضها مطلوب بموجب مواصفات وبعضها خاص بتنفيذ المتصفح.

في السابق، لم يكن بإمكان المطوّرين معرفة سبب حظر صفحاتهم من استخدام ذاكرة التخزين المؤقت للصفحة السابقة في الحقل، على الرغم من توفّر اختبار في أدوات مطوّري البرامج في Chrome. لتفعيل المراقبة في الحقل، تم توسيع الفئة PerformanceNavigationTiming لتشمل السمة notRestoredReasons. يعرض هذا الرمز عنصرًا يحتوي على معلومات ذات صلة بالإطار العلوي وجميع إطارات iframe المتوفّرة في المستند:

  • أسباب منعهم من استخدام ذاكرة التخزين المؤقت للخلف والأمام
  • تفاصيل مثل الإطار id وname، للمساعدة في تحديد الإطارات المضمّنة في HTML

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

أمثلة

يمكن الحصول على مثال PerformanceNavigationTiming من ميزات مثل Performance.getEntriesByType() وPerformanceObserver.

على سبيل المثال، يمكنك استدعاء الدالة التالية لعرض جميع عناصر PerformanceNavigationTiming المتوفّرة في المخطّط الزمني للأداء وتسجيل notRestoredReasons لكل منها:

function returnNRR() {
  const navEntries = performance.getEntriesByType("navigation");
  for (let i = 0; i < navEntries.