【问题标题】:Ajax call not working until user interaction in IOS在 IOS 中的用户交互之前,Ajax 调用不起作用
【发布时间】:2013-12-17 19:20:43
【问题描述】:

我正在使用 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);
});

【问题讨论】:

  • 是什么触发了 Ajax 调用?超时/间隔?
  • 只是一个点击事件...

标签: javascript jquery ios ajax cordova


【解决方案1】:

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

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

【讨论】:

  • 我使用 done 作为成功,但这不是问题,当我使用 success 时,问题仍然存在......
【解决方案2】:

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

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

【讨论】:

  • 谢谢,但它不起作用......当我滚动它时它工作的事实真的让我发疯......
  • 您还有其他选择吗?
猜你喜欢
  • 2019-07-10
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
  • 2020-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多