Trình duyệt: Firefox 6.0Làm thế nào để ngăn chặn nội dung được hiển thị từ bộ nhớ đệm Back-Forward trong Firefox?
Tôi đã Trang A với các thiết lập sau đây để đảm bảo nội dung không được lưu trữ trong bfcache của trình duyệt:
1) $(window).unload(function(){});
2) Tiếp theo Tiêu đề HTTP:
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="expires" content="-1" />
<meta http-equiv="cache-control" content="no-cache"/>
Tôi cũng đã kết nối các sự kiện pagehide
và pageshow
. Khi tôi đang điều hướng khỏi trang, pagehide
được gọi với giá trị ĐÚNG cho các tài sản sự kiện persisted = false
(đó là những gì cần thiết: không kiên trì trong bộ nhớ cache)
Sau khi điều hướng một vài trang, tôi đã là một window.history.go(-2);
đi trở lại trang A. Tại thời điểm này, tôi muốn Firefox thăm dò ý kiến máy chủ cho phiên bản cập nhật thay vì hiển thị từ bộ nhớ cache. pageshow
của Trang A được gọi với giá trị CORRECT cho thuộc tính sự kiện persisted = false
(có nghĩa là trang KHÔNG được tải từ bộ nhớ cache). NHƯNG nội dung trang không phải là dữ liệu máy chủ; nó là nội dung cũ (giống như khi điều hướng khỏi trang ban đầu)! Fiddler cũng không hiển thị yêu cầu mới cho máy chủ.
Google Chrome cũng thể hiện hành vi tương tự. IE hoạt động như mong đợi (tải lại dữ liệu mới)!
Bất kỳ ý tưởng nào tôi bị thiếu?
Cảm ơn trước!
Cảm ơn! Các tiêu đề HTTP sau đây đã có sẵn: 'Bộ nhớ cache-kiểm soát: no-cache Pragma: no-cache Hết hạn: -1' Thật không may là chúng cũng không hỗ trợ. Sau khi trả lời của bạn, tôi xem xét lại các tiêu đề và thấy rằng Firefox cần một tiêu đề khác để ngăn chặn bộ nhớ đệm: http://blog.httpwatch.com/2008/10/15/two-important-differences-between-firefox-and-ie-caching/ 'Bộ nhớ cache-kiểm soát: không có bộ nhớ cache, không lưu trữ ' Sau khi thêm tiêu đề ở trên, nó bây giờ hoạt động OK trong IE, Firefox, Chrome & Safari. Chỉ Opera vẫn hoạt động sai trong bộ nhớ đệm, nhưng tôi sẽ trì hoãn vấn đề đó tạm thời. – Venkat
Lưu ý khác: Firefox không lưu trữ trong bfcache nếu trang web được bật SSL! Hệ thống sản xuất của tôi là SSL trong khi hệ thống DEV thì không. Vì vậy, hệ thống sản xuất hoạt động tốt trong Firefox KHÔNG có bất kỳ tiêu đề HTTP bổ sung nào như tiêu đề đã đề cập ở trên! – Venkat
Tùy thuộc vào tiêu đề HTTP của bạn. SSL + no-cache sẽ không được lưu trữ trong bfcache, nhưng SSL có thể lưu trữ được. –