0

伙计们。我有一个 juerymobile 多页,我有一个按钮#page-index,当单击它时,将向服务器发送一个 ajax 请求,并将页面更改为#page-column,它将在 PC 中运行,但是当我在 phonegap 中部署多页时,按钮click 只能运行两次,代码如下:

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请求甚至无法发送。有人知道原因吗?

4

1 回答 1

0

AJAX 是异步的,所以不需要设置asyncfalse让它工作。改用事件。

例如:

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 请求时,用户都必须等到所有数据完全加载后,应用程序/网站才能执行/执行其他任何操作……不好.

于 2012-08-20T06:18:53.153 回答