我目前有一個已發佈到應用程序商店的應用程序。我只是注意到應用程序的某個部分存在一個錯誤。這個應用程序需要通過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。
一如既往的感謝!
不要認爲這將是正確的解決方案,因爲此應用程序目前有幾百個成員,並且不知道同一設備上將發生多少次多重登錄。更不用說在WebViewDidFinishLoading上調用的重新加載看起來像正在進行的重新加載的無限循環... – tg2007 2013-05-08 05:36:01