Tôi đang hiển thị ứng dụng web trong một số UIWebView
và đôi khi nội dung của các trang sẽ thay đổi. Sau khi nội dung đã được thay đổi, ứng dụng sẽ xóa bộ nhớ cache. Nhưng khi tôi đi đến một trang trước đây tôi đã đến thăm UIWebView
không gửi một yêu cầu HTTP GET, nhưng tải từ bộ nhớ cache mặc dù tôi đã vô hiệu hóa bộ nhớ cache như vậy:Xóa bộ nhớ cache nội bộ của UIWebView
[[NSURLCache sharedURLCache] removeAllCachedResponses];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
initally Tôi đang tải một yêu cầu với cachePolicy cachePolicy:NSURLRequestReturnCacheDataElseLoad
.
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:myURLString] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:10.0]];
UIWebView
có một số loại bộ nhớ cache nội bộ. Các trang đã truy cập sẽ được tải từ bộ nhớ cache nội bộ này thay vì đi qua NSURLCache
và cũng không có yêu cầu nào được gửi.
Có cách nào để xóa bộ nhớ cache nội bộ của UIWebView
không? Tôi thậm chí còn tái tạo các UIWebView
nhưng bộ nhớ cache vẫn còn đó.
Bạn đã thử giải pháp ở đây: http://stackoverflow.com/a/14096331/1749367 – helper
Có, không thành công với bất kỳ giải pháp nào phù hợp với những gì tôi muốn thực hiện. –
Tôi đã tìm thấy giải pháp thay thế - đặt thuộc tính Kiểm soát bộ nhớ cache trong tiêu đề phản hồi HTTP thành max-age = 0. Sau đó, một yêu cầu sẽ được gửi cho tài nguyên mỗi lần. Một cách để giải quyết nó có thể là theo dõi nếu một tệp đã được yêu cầu trước khi xóa bộ nhớ cache cuối cùng và đặt độ tuổi tối đa thành giá trị khác (ví dụ: 3600) lần thứ hai tài nguyên được tải sau lần thanh lọc cuối cùng. –