自從升級到iOS 6之后,我們看到Safari的web視圖冒昧地緩存$.ajax打電話。這是在PhoneGap應用程序的上下文中,所以它使用的是Safari WebView。我們的$.ajax呼叫是POST方法,我們將緩存設置為false。{cache:false}但這種情況仍在發生。我們嘗試手動添加TimeStamp但是沒有幫助。我們做了更多的研究,發現Safari只返回具有靜態函數簽名且不隨調用而改變的Web服務的緩存結果。例如,想象一下一個叫做以下內容的函數:getNewRecordID(intRecordType)這個函數一次又一次地接收相同的輸入參數,但是它返回的數據每次都應該是不同的??隙ㄊ窃谔O果急于讓iOS 6快速前進,令人印象深刻的是,他們對緩存設置太滿意了。還有人在iOS 6上看到過這種行為嗎?如果是的話,究竟是什么原因造成了這種情況?我們找到的解決方法是將函數簽名修改為如下所示:getNewRecordID(intRecordType, strTimestamp)然后總是通過一個TimeStamp參數,并在服務器端丟棄該值。圍繞這一問題,這是可行的。我希望這能幫助像我一樣花15個小時在這個問題上的其他可憐的人!Safari在iOS 6上緩存$.ajax是否有結果?
Safari在iOS 6上緩存$.ajax是否有結果?
慕后森
2019-07-03 11:00:45
