0

彼ら。私はjuerymobileマルチページを持っており、ボタンを#page-indexクリックすると、ajaxリクエストがサーバーに送信され#page-column、ページがに変更されます。PCで実行されますが、phonegapでマルチページをデプロイすると、ボタンが表示されます。クリックは2回しか実行できません。コードは次のとおりです。

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コードを追加すると、実行できるのは2回だけで、3回目は、ajaxリクエストを送信することさえできません。誰かが理由を知っていますか?

4

1 に答える 1

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リクエストが行われるたびに、アプリケーション/ウェブサイトが他のことを実行/実行できるようになる前に、すべてのデータが完全にロードされるまでユーザーが待たなければならないようになります...良くない.

于 2012-08-20T06:18:53.153 に答える