Mobile Safari禁用iOS 5中的ajax功能

时间:2012-01-16 15:46:17

标签: javascript jquery ios5 jquery-mobile cordova

我有一个在jQuery Mobile / PhoneGap上运行的移动应用程序,而在iOS 5中,我的ajax回调在一段时间后停止了。我正在使用jQuery的$.ajax函数,以下是我收到的一些错误消息:

  • textStatus = parsererror
  • errorThrown =未定义未定义

在上面的第二个错误中,'undefined'是我的回调函数。我的问题是,如果抛出太多错误,Mobile Safari会在一段时间后禁用功能吗?

我猜测的是,当移动设备的连接速度太慢时,我抓取的JSON文件(214K)使AJAX呼叫持续时间过长(> 10秒?),Mobile Safari取消了AJAX呼叫。然后,在X个取消的AJAX调用之后,似乎Mobile Safari完全禁用了回调函数。

其他有类似行为的人?

1 个答案:

答案 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 + ")");
    },
});