在 IOS 中的用户交互之前,Ajax 调用不起作用
Posted
技术标签:
【中文标题】在 IOS 中的用户交互之前,Ajax 调用不起作用【英文标题】:Ajax call not working until user interaction in IOS 【发布时间】: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 调用?超时/间隔? 只是一个点击事件... 【参考方案1】:http://api.jquery.com/jQuery.ajax/
如果您希望在响应时触发功能,我会使用完成而不是完成。
【讨论】:
我使用 done 作为成功,但这不是问题,当我使用 success 时,问题仍然存在......【参考方案2】:我的猜测是您没有取消点击操作并且页面正在刷新
$(".yourSelector").on("click",function (evt)
evt.preventDefault();
//your ajax call
);
【讨论】:
谢谢,但它不起作用......当我滚动它时它工作的事实真的让我发疯...... 您还有其他选择吗?以上是关于在 IOS 中的用户交互之前,Ajax 调用不起作用的主要内容,如果未能解决你的问题,请参考以下文章
使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作
SAPUI5 Cordova iOS 应用程序 Ajax 调用不起作用(无限挂起)