Ajax 调用在 IOS 中的用户交互之前不起作用

Ajax call not working until user interaction in IOS

本文关键字:交互 不起作用 用户 调用 IOS Ajax      更新时间:2023-09-26

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

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

PS:不显示错误警报。

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

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

如果您希望在响应时触发功能,我会使用完整而不是完成。

我的猜测是您没有取消点击操作并且页面正在刷新

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