人。我有一个juerymobile多页面,我在#page-index
有一个按钮,当点击它时,会向服务器发送ajax请求,并将页面更改为#page-column
,它将在PC中运行,但是当我在phonegap中部署多页,单击按钮只能运行两次,代码如下:
function test()
{
$.mobile.changePage('#page_column');
$.ajax({
url: "http://192.168.168.120:8090/fcmobile/getTest",
dataType: "json"
}).done(function(data) {
alert(data.content);
});
}
我发现如果删除$.mobile.changePage('#page_column');
,ajax请求可以随时运行。但是当我添加changePage
代码时,它只能运行两次,在第三次,甚至无法发送ajax请求。任何人都知道理由?
答案 0 :(得分:0)
AJAX是异步的,因此无需将async
设置为false
即可使其正常工作。改为使用事件。
例如:
function test () {
$.ajax({
'url': "http://192.168.168.120:8090/fcmobile/getTest",
'dataType': 'json',
'success': function (json_data) {
$(document).trigger('test_json_data_loaded');
console.log(data);
}
});
}
$(document).on('test_json_data_loaded', function () {
$.mobile.changePage('#page_column');
});
当你将async
设置为false
时,你基本上是这样做的,这样每次发出这个AJAX请求时,用户都必须等到所有数据在应用程序之前完全加载/ website可以执行/执行其他任何操作......不太好。