更改页面时出现Ajax请求错误

时间:2012-08-20 01:55:48

标签: ajax jquery-mobile cordova

人。我有一个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请求。任何人都知道理由?

1 个答案:

答案 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可以执行/执行其他任何操作......不太好。