我有一个在jQuery Mobile / PhoneGap上运行的移动应用程序,而在iOS 5中,我的ajax回调在一段时间后停止了。我正在使用jQuery的$.ajax
函数,以下是我收到的一些错误消息:
在上面的第二个错误中,'undefined'是我的回调函数。我的问题是,如果抛出太多错误,Mobile Safari会在一段时间后禁用功能吗?
我猜测的是,当移动设备的连接速度太慢时,我抓取的JSON文件(214K)使AJAX呼叫持续时间过长(> 10秒?),Mobile Safari取消了AJAX呼叫。然后,在X个取消的AJAX调用之后,似乎Mobile Safari完全禁用了回调函数。
其他有类似行为的人?
答案 0 :(得分:0)
我经常使用$ .ajax并且没有遇到过这个问题。我建议将超时设置为50000以进行慢速连接。要查看错误,请在html的某处添加:
<div id='text1'>No Error yet...</div>
和timeout参数的添加类似于:
$.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 + ")");
},
});