Caching là bạn của bạn. Nếu trình duyệt đang lưu trong bộ nhớ đệm những tệp này không chính xác, điều đó có nghĩa là đã xảy ra sự cố với tiêu đề HTTP mà máy chủ web của bạn đang gửi cùng với các tệp JS và CSS (không phải trang HTML sử dụng chúng). Trình duyệt sử dụng các tiêu đề đó để tìm hiểu xem nó có thể lưu vào bộ nhớ cache hay không.
máy chủ web của bạn có thể gửi các tiêu đề (trên tất cả các tập tin JS và CSS nó phục vụ) nói với các trình duyệt không để cache họ:
Cache-Control: no-cache
Pragma: no-cache
Expires: Sat, 01 Jan 2000 00:00:00 GMT
Nhưng điều đó sẽ làm tăng tải mạng trên trang web của bạn, và người dùng sẽ xem tải trang chậm hơn. Bạn có thể khoan dung hơn một chút và cho phép trình duyệt để cache file CSS trong 60 giây:
Cache-Control: max-age=60
Nếu bạn thực sự muốn trình duyệt để kiểm tra một file mới với mỗi tải trang duy nhất, bạn có thể vẫn lưu một số lưu lượng truy cập mạng bằng cách sử dụng ETag:
Cache-Control: max-age=0
Pragma: no-cache
Expires: Sat, 01 Jan 2000 00:00:00 GMT
ETag: "o2389r-98ur0-w3894tu-q894"
ETag chỉ đơn giản là mã định danh duy nhất mà máy chủ Web của bạn tạo ra mỗi khi tệp thay đổi. Lần sau trình duyệt muốn tệp, nó hỏi máy chủ, "/js/pm.init.js vẫn có ETag o2389r98ur0w3894tuq894?" và nếu vậy, máy chủ của bạn chỉ đơn giản là nói "có". Bằng cách đó, máy chủ của bạn không phải gửi lại toàn bộ tệp và người dùng không phải chờ tải tệp đó. Giành chiến thắng.
Cách thuyết phục máy chủ web của bạn tự động tạo thẻ ETTAG tùy thuộc vào máy chủ. Nó thường không khó.
Tôi đã thấy bản hack bạn đang sử dụng trước đây. Giống như rất nhiều trên trang web, nó không đẹp hoặc đặc biệt hiệu quả, nhưng nó hoạt động.
Nguồn
2010-11-17 15:53:29
Họ có cần tìm nạp mọi tải trang hay chỉ khi bạn thực hiện bản phát hành mới? –
Có lý do tại sao bạn muốn * ngăn chặn * lưu vào bộ nhớ cache nội dung tĩnh của bạn? Điều đó hoàn toàn trái ngược với những gì mọi người thường làm. – Pointy
@Nick Craver & Pointy: Có thể anh ấy đang gỡ lỗi và không muốn xóa bộ nhớ cache mỗi lần? Đó là tất cả những gì tôi có thể hình dung. – Robusto