Bộ nhớ đệm cho thao tác tiến/lùi (hoặc bfcache) là một tính năng tối ưu hoá của trình duyệt, cho phép điều hướng tiến và lùi trong tích tắc. Tính năng này cải thiện đáng kể trải nghiệm duyệt web cho người dùng, đặc biệt là đối với những trang web có nhiều thao tác quay lại và chuyển tiếp.
Bài viết trên web.dev về bfcache
Người bán trên Yahoo! JAPAN News, một trong những nền tảng tin tức phổ biến nhất ở Nhật Bản, đã nỗ lực cải thiện tỷ lệ truy cập vào bfcache và nhờ đó, trải nghiệm người dùng và hoạt động kinh doanh của họ đã cải thiện đáng kể. Cụ thể, kết quả thử nghiệm A/B mà họ tiến hành cho thấy những trang sử dụng bfcache đã tăng 9% doanh thu từ quảng cáo.
Nghiên cứu điển hình này sẽ giải thích cách Yahoo! JAPAN News đã xoá các trình chặn cho bfcache và cách bfcache cải thiện đáng kể trải nghiệm người dùng.
Xoá trình chặn cho bfcache
bfcache đã có từ Chrome 86 và cũng có trên tất cả trình duyệt hiện đại. Tuy nhiên, để khai thác tối đa bfcache, bạn cần xoá các trình chặn tiềm ẩn trên trang web của mình. Một số trình chặn chính mà Yahoo! JAPAN News đã gặp phải các vấn đề sau:
- Sử dụng trình xử lý
unload
. - Sử dụng lệnh
no-store
trên tiêu đềCache-control
.
Bạn có thể kiểm tra các trình chặn chính trên trang web của mình bằng cách chuyển đến Chrome DevTools > Applications (Công cụ của Chrome cho nhà phát triển > Ứng dụng) > Back/forward Cache (Bộ nhớ đệm lui/về trước).
Ngoài ra, bạn có thể sử dụng notRestoredReasons
API để có được thông tin toàn diện hơn về trình chặn dựa trên mức sử dụng thực tế trong trường.
Sau đây là cách Yahoo! JAPAN News đã xoá các trình chặn:
- Thay thế trình xử lý huỷ tải: Các trình xử lý này đã sử dụng sự kiện
pagehide
thay vì sự kiệnunload
, vìunload
rất không đáng tin cậy.Permissions-Policy: unload=()
được ra mắt trong Chrome 115 để các trang web có thể xoá trình xử lýunload
một cách đáng tin cậy cho các nguồn gốc cụ thể. Chrome dự định dần ngừng sử dụng trình xử lýunload
. - Thay đổi
cache-control
: Thay đổi tiêu đềCache-control
từno-store
(CCNS) thànhno-cache
sẽ bật bfcache. Chrome dự định lưu vào bộ nhớ đệm cho bfcache, ngay cả khi có tiêu đềno-store
, trong một số trường hợp nhất định.
CCNS dành cho những trang không bao giờ được lưu vào bộ nhớ đệm, trong bất kỳ trường hợp nào. Tuy nhiên, bạn cần lưu ý rằng các trang có CCNS không được hưởng lợi từ bất kỳ công nghệ lưu vào bộ nhớ đệm nào, bao gồm cả máy chủ biên CDN và bộ nhớ đệm cục bộ.
Nếu bạn có tiêu đề CCNS, đây là cơ hội tuyệt vời để thảo luận về những chiến lược Cache-control
phù hợp với trang web của bạn. Dưới đây là những điểm khác biệt chính giữa no-store
và no-cache
.
Để tìm hiểu thêm về các tuỳ chọn cache-control
, hãy xem sơ đồ quy trình cache-control
.
Thử nghiệm A/B để chứng minh mức độ tác động
Để đo lường tác động của bfcache, Yahoo! JAPAN News đã tiến hành thử nghiệm A/B trong hai tuần. Họ đã phân phát một phiên bản trang có bản sửa lỗi bfcache trong một nhóm và một phiên bản có các trang không đủ điều kiện sử dụng bfcache cho một nhóm khác. Họ đã thử nghiệm các đường dẫn URL có lưu lượng truy cập đáng kể để đảm bảo thử nghiệm đạt được kết quả có ý nghĩa. Không có sự khác biệt nào khác về hình ảnh hoặc chức năng giữa các trang.
Sau đây là video so sánh trang web có bfcache và không có bfcache. Bạn có thể thấy rằng trang web đã bật bfcache tải nhanh hơn đáng kể trong quá trình điều hướng lui hoặc tiến.
Điều thực sự đáng mong đợi là nhóm đã bật bfcache đã tăng đáng kể số lượt xem trang và doanh thu từ quảng cáo, đặc biệt là trên thiết bị di động.
Sau đây là thông tin chi tiết về tác động mà Yahoo! ghi nhận được. JAPAN News với thử nghiệm A/B bfcache. Bạn có thể xem thêm thông tin trong nghiên cứu điển hình của họ.
Khi thao tác quay lại/chuyển tiếp giữa các trang trở nên tức thì nhờ bfcache, người dùng có xu hướng ở lại các trang lâu hơn, do đó tăng số lượt xem quảng cáo, dẫn đến tăng doanh thu từ quảng cáo.
Trải nghiệm liền mạch cho người dùng
Khi các trang tải tức thì, trải nghiệm điều hướng sẽ liền mạch hơn.
Trong Yahoo! JAPAN News, một trong những hành trình chính của người dùng là đọc nhiều bài viết:
- Truy cập vào danh sách bài viết.
- Nhấp vào một bài viết để đọc.
- Sau khi hoàn tất, hãy quay lại danh sách bài viết.
- Nhấp vào một bài viết khác để đọc.
Trước khi có bfcache, khi đọc xong một bài viết, người dùng phải đợi trang danh sách bài viết tải lại. Đây có thể là một yếu tố gây phiền toái cho những người dùng muốn nhanh chóng quay lại danh sách để chọn một bài viết khác để đọc.
Một nguyên nhân khác gây khó khăn trong quá trình điều hướng ngược là vị trí cuộn. Trong thực tế, trình duyệt sẽ cố gắng khôi phục vị trí cuộn khi thao tác điều hướng lui xảy ra. Tuy nhiên, do quảng cáo được thêm động hoặc các thay đổi khác về bố cục, vị trí cuộn có thể được khôi phục không chính xác. Điều này khiến người dùng nhầm lẫn hoặc thậm chí bỏ qua trang.
Vấn đề này được giải quyết khi tính năng điều hướng lui được cung cấp bởi bfcache: vị trí cuộn được khôi phục ngay lập tức và chính xác.

Giờ đây, với bfcache, sự phiền toái trong hành trình của người dùng đã không còn nữa. Người dùng có thể quay lại trang danh sách bài viết ngay lập tức và chọn một bài viết khác để đọc mà không cần chờ trang danh sách bài viết tải xong.
Điều tương tự cũng xảy ra khi người dùng duyệt qua một bài viết rồi chuyển sang bài viết khác và quay lại:

Tóm lại, bfcache mang lại những lợi ích sau cho Yahoo! Tin tức JAPAN bao gồm:
- Tăng số lượt xem trang: Người dùng có nhiều khả năng di chuyển trong trang web hơn khi các trang được lưu vào bộ nhớ đệm bằng bfcache.
- Tăng doanh thu: Do số lượt xem trang trên mỗi phiên tăng lên, số lượt hiển thị quảng cáo cũng tăng lên, dẫn đến doanh thu trên thiết bị di động tăng 9% so với nhóm thử nghiệm không có bfcache.
Triển khai bfcache ngay
Tóm lại, bfcache không chỉ giúp trang web của bạn tải tức thì mà còn có thể giảm thiểu sự phiền toái trong trải nghiệm tổng thể của người dùng và tăng mức độ tương tác trên trang web.
Nhóm Chrome liên tục xem xét các trình chặn bfcache, đặc biệt là các lý do được liệt kê vì đó là những lý do phổ biến khiến bfcache không được sử dụng. Trong tương lai, các vấn đề này có thể không ngăn việc sử dụng bfcache, nhưng bạn không cần phải đợi đến lúc đó. Bạn có thể hưởng lợi từ bfcache bằng cách xem các trình chặn bfcache hiện tại và tránh những mẫu phổ biến này (cũng như các mẫu ít phổ biến hơn).