2013-07-27 100 views
2

Im在webview中加載圖書的xhtml頁面。當第一次打開書籍並在webview中加載其頁面時,所有工作都很好,但是當我回到主屏幕並加載其他書籍時,本書的封面和索引頁面(cover.xhtml & index.xhtml)舊書(第一本被打開的書)。對於所有書籍都是一樣的,即覆蓋&任何書籍的索引頁面都顯示爲第一次打開的書籍。Web視圖在ePub閱讀器中顯示舊網頁

我嘗試了很多東西,如刪除webview和添加回來。

[self loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"about:blank"]]]; , 


[webView loadHTMLString:@"<html><head></head><body></body></html>" baseURL:nil]; 

沒有幫助。事情是它唯一給封面和索引頁面問題的其餘頁面沒有問題。

是因爲該文件的名稱是相同的(cover.xhtml)在所有的書因此它的緩存始終把同樣的內容?如果是的話,解決方案是什麼。

回答

1

使得使用

[[NSURLCache sharedURLCache] removeCachedResponseForRequest:NSURLRequest]; 

和要求,如果你想清除整個緩存可以撥打

[[NSURLCache sharedURLCache] removeAllCachedResponses]; 
+0

想這太,不清除:( – Preetham

+0

只是零的網頁視圖並重新創建時一個新書需要加載。 – jarryd

1

這是因爲它加載從緩存中的數據時,您可以清除緩存而不是從請求URL加載它。

有當我不信任的系統和服務器,以確保我的數據是不緩存

在請求結束與隨機添加一個簡單的垃圾參數,我用永諾小的解決方法值每次。

例如

代替裝載http://www.example.com/somepage.php

http://www.example.com/somepage.php?junkValue=123456

它不是一個完美的解決方案獲取數據。完美地解決nsurlrequest對象中的檢查緩存控制頭並相應地獲取數據,或者禁用請求對象的緩存。

+0

已經嘗試通過給予?參數= 123 [隨機生成的值]如http://stackoverflow.com/questions/13886540/nsfilemanager-uploads-new-file-but-uiwebview-shows中所述-cached-version?rq = 1 – Preetham

+0

然後你應該改變緩存策略。'[[NSURLCache sharedURLCache] removeAllCachedResponses]; '在調用讀取數據之前使用它 –

1

試試這個,一旦你回到你家的屏幕在您的退出方法中添加這行代碼

[web視圖的loadRequest:[的NSURLRequest requestWithURL:[NSURL URLWithString:@ 「有關:空白」]]];

我知道它的一個貧窮的技巧,但它清除你的網頁流量。

1

請嘗試設置網頁視圖request`s緩存策略如下圖所示,

[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; 

已經看清楚蘋果的CachePolicy爲的NSURLRequest here