Tôi đã gặp lỗi lạ trong Chrome 19. Tôi đã triển khai một trang web AJAX đầy đủ (mọi liên kết không phải bên ngoài được mở qua yêu cầu AJAX) với hỗ trợ pushState. Tôi truyền các đoạn mã HTML trong AJAX qua định dạng JSON.Lỗi Ajax + pushState trong Chrome
Khi tôi rời khỏi trang web của mình qua liên kết bên ngoài và sau đó quay lại, Chrome hiển thị dữ liệu được lưu trong bộ nhớ cache cho URL đó - vấn đề là, anh lưu trữ nội dung JSON và hiển thị thay vì trang web đầy đủ.
Đây là tái sản xuất bởi các bước sau (UPDATE: Tôi đã gỡ bỏ chức năng AJAX trên trang web của tôi kể từ đó, vì vậy lỗi này không còn xuất hiện):
- mở http://beta.mirtes.cz/
- Nhấn vào ngày thứ hai link (16. 6. 2012 bên cạnh "Tất cả bắt đầu bằng một e-mail lạ"). Trang này (bạn hiện đang ở http://beta.mirtes.cz/it-all-began-with-a-strange-e-mail) được tải qua AJAX.
- Nhấp vào "Tất cả bắt đầu bằng một e-mail lạ". Bạn được chuyển hướng đến một trang web bên ngoài.
- Nhấp vào "Quay lại" trong Chrome sau khi trang được tải hoàn toàn.
Tôi cố gắng gửi tất cả câu trả lời AJAX bằng Bộ nhớ cache-Điều khiển: không có bộ nhớ cache, nhưng không có hiệu lực.
Firefox 12 hoạt động OK.
Bạn có thể giải thích thêm một chút về những gì bạn đã làm và cách khắc phục sự cố không? – Ryan
Tôi đang thực hiện tất cả các yêu cầu AJAX với tham số GET bổ sung - trong trường hợp này, ajax = 1. Tham số này không hiển thị với người dùng, vì nó chỉ được thực hiện ở chế độ nền. –
Bằng cách này, trình duyệt có thể biết sự khác biệt giữa nội dung HTML đầy đủ và nội dung AJAX JSON vì các URL khác nhau. Và do đó nó không hiển thị nội dung JSON được lưu trong bộ nhớ cache mà nó không nên. Bạn có thể kiểm tra chức năng trên trang chủ của tôi tại http://ondrej.mirtes.cz/. –