2013-05-08 38 views
0

我目前有一個已發佈到應用程序商店的應用程序。我只是注意到應用程序的某個部分存在一個錯誤。這個應用程序需要通過POST方法進行用戶登錄。這是我的場景。iOS UIView包含帶陳舊數據的UIWebview - 緩存?

用userA登錄。一旦登錄,另一個viewController被模態調用。在這個viewController上viewDidLoad有3個webviews。這是我呼叫我的loadRequest從我的網絡服務器檢索數據並在webviews中顯示結果的地方。

到目前爲止,這一切都工作得很好。

UserA註銷,然後我登錄userB。當用戶B加載網頁瀏覽時,會顯示userA數據而不是用戶B的數據。

這是我迄今爲止嘗試修復緩存問題所做的工作。 1)NSURLMutableRequest - 一套高速緩存政策NSURLRequestReloadIgnoringLocalAndRemoteCacheData

2)附加的隨機數到我的職位數據,以使每次調用唯一的修改我的Apache2配置一定程度 3)包括:

SetEnvIf之後REQUEST_METHOD「 POST」 IS_POST 頭添加附註 「無緩存」 ENV = IS_POST

4)以我viewWillDisappear方法添加以下:

[[NSURLCache sharedURLCache] removeAllCachedResponses]; 
self.view = nil; 
[self.view removeFromSuperview]; 

我也設置爲零的結果爲零的3個網頁。

我在這裏錯過了什麼?如果我停止應用程序並重新啓動它,我會看到正確的數據。另外我登錄到控制檯我的URL被請求,他們實際上發送正確的 數據。第一個webview仍在加載,而不是當前的webviews數據。此時我不知所措。我希望有人能指出我正確的方向。此外這個項目正在使用ARC。

一如既往的感謝!

回答

0

當用戶B加載時,在WebViewDidFinishLoading方法中嘗試重新加載webview。

if(userB){ 
    [webView Reload]; 
} 

重新加載將清除以前的所有緩存。

+0

不要認爲這將是正確的解決方案,因爲此應用程序目前有幾百個成員,並且不知道同一設備上將發生多少次多重登錄。更不用說在WebViewDidFinishLoading上調用的重新加載看起來像正在進行的重新加載的無限循環... – tg2007 2013-05-08 05:36:01

相關問題