2012-01-16 31 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 + ")"); 
    }, 
});