亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Safari在iOS 6上緩存$.ajax是否有結果?

Safari在iOS 6上緩存$.ajax是否有結果?

慕后森 2019-07-03 11:00:45
自從升級到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是否有結果?
查看完整描述

3 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

假設您使用的是jQuery,則所有Web服務請求的解決方案都很簡單:

$.ajaxPrefilter(function (options, originalOptions, jqXHR) {
    // you can use originalOptions.type || options.type to restrict specific type of requests
    options.data = jQuery.param($.extend(originalOptions.data||{}, { 
      timeStamp: new Date().getTime()
    }));});

了解有關jQuery預篩選器調用的更多信息。這里.

如果您沒有使用jQuery,請檢查文檔以查找您選擇的庫。它們可能具有類似的功能。


查看完整回答
反對 回復 2019-07-03
  • 3 回答
  • 0 關注
  • 369 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號