Mobile Safari在iOS 5中禁用ajax功能

Mobile Safari disables ajax function in iOS 5

本文关键字:ajax 功能 Safari iOS Mobile      更新时间:2023-09-26

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

  • text状态=语法错误
  • errorThrown=未调用undefined

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

我的猜测是,当移动设备的连接太慢时,我正在获取的JSON文件(214K)会使AJAX调用持续太长(>10?),而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 + ")");
    },
});