2012-01-16 69 views
1

我有一個在jQuery Mobile/PhoneGap上運行的移動應用程序,並且在iOS 5中 - 僅在一段時間後,我的ajax回調纔會停止觸發。我使用jQuery的$.ajax功能,這裏有一些錯誤的消息我已經得到的:Mobile Safari禁用iOS 5中的ajax功能

  • textStatus = parsererror
  • errorThrown =未定義不叫

在上面的第二個錯誤'undefined'是我的回調函數。我的問題是,如果太多的錯誤被拋出,Mobile Safari會在一段時間後禁用函數嗎?我的猜測是,當移動設備的連接速度太慢時,我抓取的JSON文件(214K)使AJAX調用時間過長(> 10s?),Mobile Safari取消了AJAX呼叫。然後,在X個取消的AJAX調用之後,Mobile Safari似乎完全禁用回調函數。

其他人有類似的行爲?

回答

0

我經常使用$ .ajax並沒有遇到過這個問題。我建議將超時設置爲50000,以獲得較慢的連接。要查看錯誤,在某處你的HTML添加:

<div id='text1'>No Error yet...</div> 

和超時參數將被添加類似於:

$.ajax({ 
    type: "GET", 
    url: "yourpage.html", 
    async: true, 
    cache: false, 
    timeout:5000, 
    success: function(data){ 
     //something with the data 
    }, 
    error: function(XMLHttpRequest, textStatus, errorThrown){ 
     $("#text1").text("Comet Timeout ERROR: " + textStatus + " (" + errorThrown + ")"); 
    }, 
});