我在UIWebView
中顯示了一個網絡應用,有時頁面的內容也會改變。內容更改後,應用程序清除緩存。但是,當我去我以前訪問過的UIWebView
不發送HTTP GET請求一個網頁,而是從緩存中加載,即使我已禁用緩存,像這樣:刪除UIWebView的內部緩存
[[NSURLCache sharedURLCache] removeAllCachedResponses];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
Initally我加載請求緩存策略cachePolicy:NSURLRequestReturnCacheDataElseLoad
。
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:myURLString] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:10.0]];
UIWebView
有某種內部緩存。已訪問的頁面將從此內部緩存中加載,而不是通過NSURLCache
,也沒有發送請求。
有沒有什麼辦法可以清除UIWebView
的內部緩存?我甚至重新創建了UIWebView
,但緩存仍然存在。
你有沒有嘗試這裏的解決方案:http://stackoverflow.com/a/14096331/1749367 – helper
是的,任何這些解決方案的成功與我想要完成的工作。 –
我找到了一種解決方法 - 將HTTP響應頭中的Cache-Control屬性設置爲max-age = 0。然後每次都會爲該資源發送一個請求。解決這個問題的一種方法是記錄自上一次清除緩存之後是否有文件被請求,並且在最後一次清除之後第二次加載資源時將max-age設置爲另一個值(例如3600)。 –