Tôi đang cố gắng tìm ra cách xử lý đúng bộ đệm của trình duyệt web cho các ứng dụng trang đơn.
Tôi có một thiết kế khá điển hình: một số tệp HTML, JS và CSS triển khai SPA và một loạt dữ liệu JSON được sử dụng bởi SPA. Các vấn đề phát sinh khi tôi muốn đẩy một bản cập nhật: Tôi cập nhật phần tĩnh của trang web và mã tạo JSON cùng một lúc, nhưng các trình duyệt máy khách thường có phần tĩnh được lưu trong bộ nhớ cache, vì vậy mã cũ cố xử lý dữ liệu mới và có thể (tùy thuộc vào những thay đổi được thực hiện) gặp vấn đề. (Đặc biệt, IE có vẻ mạnh mẽ hơn Chrome hoặc Firefox về việc sử dụng bộ nhớ cache mà không cần xác nhận lại.)
Cách tốt nhất để xử lý việc này là gì?
- Đảm bảo các thay đổi JSON của tôi tương thích ngược và giả sử bộ đệm của trình duyệt sẽ hết hạn trong khung thời gian hợp lý.
- Nhúng một số loại số phiên bản trong cả JS tĩnh và JSON, sau đó thực thi
window.location.reload(true);
nếu chúng không khớp. - Chỉ ra sự kết hợp thích hợp của các tiêu đề (
must-revalidate
hoặcno-cache
bất cứ điều gì; các nguồn khác nhau về cách thực hiện việc này) để đảm bảo rằng các trình duyệt luôn xác nhận lại tất cả tài nguyên trên mỗi tải, ngay cả khi điều đó có nghĩa là thêm một vài chuyến đi vòng để tải trang. - Micro-quản lý kiểm soát bộ đệm của tôi và hết hạn các tiêu đề để nội dung tĩnh hết hạn khi tôi muốn đẩy một bản cập nhật.
- Thứ gì khác?