Thông tin khái quát
Bộ nhớ đệm cho thao tác tiến/lùi (bfcache) lưu trữ bản tổng quan nhanh của trang trong bộ nhớ cho thời điểm trang được khôi phục từ nhật ký điều hướng. Điều này giúp tăng tốc đáng kể các thao tác quay lại trang, tuy nhiên một số API trình duyệt (ví dụ: trình nghe tải xuống) có thể khiến bfcache không hoạt động và trang sẽ tải như bình thường.
Cách Lighthouse phát hiện lỗi bfcache
Thành phần điều hướng độc lập
Khi một lượt điều hướng độc lập kết thúc, Lighthouse sẽ thoát và cố gắng khôi phục trang từ nhật ký điều hướng để phát hiện xem bfcache có đang được sử dụng hay không.
Luồng người dùng
Lighthouse sẽ không chủ động kiểm tra bfcache trong hoạt động điều hướng khi chạy luồng người dùng. Lý do là việc rời khỏi và quay lại trang ở cuối mỗi thao tác điều hướng không phản ánh hầu hết trải nghiệm người dùng trên trang.
Tuy nhiên, bạn vẫn có thể kiểm thử mức sử dụng bfcache ở chế độ khoảng thời gian bằng cách đưa tính năng điều hướng theo nhật ký vào hành trình của người dùng. Ví dụ:
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();
Tìm hiểu về các lỗi bfcache
Nếu không thể khôi phục trang từ bfcache vì bất kỳ lý do gì, thì quy trình kiểm tra sẽ không thành công. Lighthouse sẽ liệt kê mọi lý do không thể sử dụng bfcache, cùng với(các) khung gây ra vấn đề. Lý do không thành công có thể thuộc một trong ba loại sau:
- Có thể hành động: Bạn có thể khắc phục những vấn đề này để bật tính năng lưu vào bộ nhớ đệm.
- Đang chờ hỗ trợ: Chrome chưa hỗ trợ các tính năng này nên các tính năng này sẽ ngăn việc lưu vào bộ nhớ đệm. Tuy nhiên, khi được hỗ trợ, Chrome sẽ loại bỏ những hạn chế này.
- Không thể khắc phục: Bạn không thể khắc phục những vấn đề này trên trang này. Một yếu tố nằm ngoài tầm kiểm soát của trang ngăn việc lưu vào bộ nhớ đệm.