Tôi đã thử hai cách khác nhau và cả hai đều không có tác dụng:Làm cách nào để cập nhật tệp tập lệnh của trình duyệt khi cập nhật tệp kê khai nhưng cho phép lưu vào bộ nhớ cache?
1. Cập nhật manifest để trình duyệt thấy có những thay đổi và cập nhật
này cập nhật tất cả các file trừ file JavaScript. Trình duyệt thấy có sự khác biệt, tải xuống mọi thứ (bao gồm các tệp JavaScript) nhưng sử dụng phiên bản được lưu trong bộ nhớ cache của các tệp JavaScript.
2. Gửi tiêu đề no-cache (xem mã bên dưới) để ngăn chặn bộ nhớ đệm của script file
Điều này làm cho trình duyệt để ném ra một lỗi và không còn bộ nhớ cache bất cứ điều gì. Nó nói rằng một lỗi ApplicationCache đã xảy ra.
Mã no-cache:
<filesMatch "\.(js)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</filesMatch>
Trên đây làm cho tất cả các trình duyệt không bộ nhớ cache ứng dụng để sử dụng ngoại tuyến.
Có cách nào khác không?
Lưu ý đầu tiên, bộ nhớ cache của ứng dụng dường như không còn được dùng nữa (nhưng vẫn là giải pháp duy nhất): https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache Làm cách nào để bạn biết rằng trình duyệt tải xuống tập lệnh? Tôi thấy khó tin rằng nó tải thành công nhưng không sử dụng nó. Nó có thể cung cấp trạng thái "304 - Không được sửa đổi". – msoft