ตรวจสอบว่ากู้คืนหน้าจาก Back-Forward Cache ได้

ที่มา

Back-Forward Cache (bfcache) จะเก็บสแนปชอตของหน้าไว้ในหน่วยความจำเมื่อกู้คืนหน้าจากประวัติการนำทาง วิธีนี้ทำให้การกลับไปยังหน้าเว็บเร็วขึ้นอย่างมาก อย่างไรก็ตาม API ของเบราว์เซอร์บางรายการ (เช่น ยกเลิกการโหลด Listener) อาจทำให้ bfcache ล้มเหลวและหน้าเว็บจะโหลดตามปกติ

Lighthouse ตรวจพบความล้มเหลวของ bfcache ได้อย่างไร

การนำทางแบบสแตนด์อโลน

เมื่อสิ้นสุดการนำทางแบบสแตนด์อโลน Lighthouse จะออกไปและพยายามกู้คืนหน้าจากประวัติการนำทางเพื่อตรวจสอบว่ามีการใช้ bfcache อยู่หรือไม่

ขั้นตอนของผู้ใช้

Lighthouse จะไม่ทดสอบ bfcache อย่างต่อเนื่องในการนำทางเมื่อเรียกใช้โฟลว์ผู้ใช้ นั่นเป็นเพราะการออกจากหน้าไปและกลับไปยังหน้าในช่วงท้ายของการนำทางทุกครั้งไม่ได้สะท้อนให้เห็นถึงประสบการณ์ของผู้ใช้ส่วนใหญ่ในหน้าเว็บ

อย่างไรก็ตาม คุณยังคงทดสอบการใช้ bfcache ในโหมดช่วงเวลาได้โดยรวมการนำทางของประวัติไว้เป็นส่วนหนึ่งของเส้นทางของผู้ใช้ เช่น

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();

การทำความเข้าใจเกี่ยวกับความล้มเหลวของ bfcache

หากกู้คืนหน้าเว็บจาก bfcache ไม่ได้ไม่ว่าด้วยเหตุผลใดก็ตาม การตรวจสอบจะล้มเหลว Lighthouse จะแสดงสาเหตุที่ใช้ bfcache ไม่ได้ รวมถึงเฟรมที่ทำให้เกิดปัญหา สาเหตุที่ดำเนินการไม่สำเร็จอาจเป็น 1 ใน 3 ประเภทต่อไปนี้

  • ดำเนินการได้: คุณแก้ไขปัญหาเหล่านี้เพื่อเปิดใช้การแคชได้
  • รอการสนับสนุน: Chrome ยังไม่รองรับฟีเจอร์เหล่านี้ จึงป้องกันการแคช แต่เมื่อมีการสนับสนุนแล้ว Chrome จะนำข้อจำกัดเหล่านี้ออก
  • ดำเนินการไม่ได้: คุณแก้ไขปัญหาเหล่านี้ในหน้านี้ไม่ได้ บางอย่างที่อยู่นอกเหนือการควบคุมของหน้าป้องกันการแคช

ตัวอย่างผลลัพธ์จากการตรวจสอบ Back-Forward Cache ของ Lighthouse

แหล่งข้อมูล