Mobile Safari禁用iOS 5中的ajax功能
问题描述:
我有一个在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似乎完全禁用回调函数。
其他人有类似的行为?
答
我经常使用$ .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 + ")");
},
});