الخلفية
تخزِّن ميزة "التخزين المؤقت للصفحات" (bfcache) لقطة للصفحة في الذاكرة عند استعادة الصفحة من سجلّ التنقّل. يؤدي ذلك إلى تسريع عملية الرجوع إلى الصفحة بشكل كبير، إلا أنّ بعض واجهات برمجة تطبيقات المتصفّح (مثل إلغاء تحميل أدوات معالجة البيانات) يمكن أن تتسبّب في تعذُّر استخدام ميزة "التخزين المؤقت للصفحات" وتحميل الصفحة بشكل طبيعي.
كيفية رصد Lighthouse لأخطاء "التخزين المؤقت للصفحات"
عمليات التنقّل المستقلة
في نهاية عملية التنقّل المستقلة، سينتقل Lighthouse إلى الصفحة ويحاول استعادة الصفحة من سجلّ التنقّل لاكتشاف ما إذا كان يتم استخدام "التخزين المؤقت للصفحات".
مسارات المستخدمين
لن يختبر Lighthouse ميزة "التخزين المؤقت للصفحات" بشكل نشِط أثناء التنقّل عند تشغيل مسار المستخدم. وذلك لأن الانتقال إلى الصفحة ثم العودة إليها في نهاية كل عملية تنقّل لا يعكس معظم تجارب المستخدم على الصفحة.
ومع ذلك، لا يزال بإمكانك اختبار استخدام ميزة "التخزين المؤقت للصفحات" في وضع الفترة الزمنية من خلال تضمين التنقّل في السجلّ كجزء من تجربة المستخدم. مثلاً:
const flow = await startFlow(page);
// This navigation will not test the bfcache
// because it is part of a user flow.
await flow.navigate('https://example.com');
// This timespan will try to restore the page from the bfcache.
// Problems restoring from the bfcache are surfaced in this report.
await flow.startTimespan();
await page.goto('https://example2.com');
await page.goBack();
await flow.endTimespan();
فهم إخفاقات ميزة "التخزين المؤقت للصفحات"
إذا تعذّرت استعادة الصفحة من ميزة "التخزين المؤقت للصفحات" لأي سبب، سيتعذّر التدقيق. ستعرِض أداة Lighthouse أي أسباب لعدم إمكانية استخدام ميزة "التخزين المؤقت للصفحات"، بالإضافة إلى الإطارات التي تسبّبت في المشكلة. يمكن أن تكون أسباب التعذُّر أحد الأنواع الثلاثة التالية:
- قابلة للتنفيذ: يمكنك حلّ هذه المشاكل لتفعيل التخزين المؤقت.
- دعم في انتظار المراجعة: لا يدعم Chrome هذه الميزات بعد، لذا فهي تمنع التخزين المؤقت. ومع ذلك، يزيل Chrome هذه القيود بعد توفُّرها.
- غير قابلة للتنفيذ: لا يمكنك حلّ هذه المشاكل في هذه الصفحة. ويتم منع التخزين المؤقت من خلال العناصر الخارجة عن نطاق التحكّم في الصفحة.