在IOS中进行用户交互之前,Ajax调用无效

时间:2013-12-17 19:20:43

标签: javascript jquery ios ajax cordova

我正在使用phonegap和jQuery开发一个应用程序,我在iOS上执行ajax请求时遇到问题。我做了请求,我的服务器上的PHP接收信息并回应正确的答案。原来我的应用程序没有“获取”信息,直到我以某种方式与屏幕交互(例如滚动)或真的等待太久(超过一分钟)。这个问题发生了变化,刚开始发生在几个请求之后,现在第一个ajax已经显示出来了。我注意到的另一件事是,当取出所有(或几乎所有)javascript和/或css(怪异)时,问题就会消失,好像它是手机内存的东西。使用async : false执行请求时,问题也会消失!它发生在iPhone 4上。在Android和PC(Chrome和Mozilla Firefox)上进行了测试,它运行良好。

最奇怪的是,当我与屏幕交互时,答案出现了,它不会等待一秒钟,它几乎是瞬间的...好像答案已经存在,但由于某种原因没有出现。< / p>

Ps:错误提示不会出现。

jQuery.ajax({
  type: 'GET',
  url: 'url',
  crossDomain: true,
  data: {
    data: data
  },
  error: function() {
    alert('error');
  }
}).done(function(data) {
  alert(data);
});

2 个答案:

答案 0 :(得分:0)

http://api.jquery.com/jQuery.ajax/

如果您想要在响应时触发某个功能,我会使用完整而不是完成。

答案 1 :(得分:0)

我的猜测是你没有取消点击操作,页面正在刷新

$(".yourSelector").on("click",function (evt) {
   evt.preventDefault();
   //your ajax call
});