-2

データベース内の一部の情報を更新する関数に問題が必要です (websql を使用しています)。私のアプリケーションでは、更新を行うための読み込みボックスを表示していますが、get 関数が完了する前に for が終了し、読み込みボックスが閉じます。

get が終了したときにのみ、 for の次の対話が発生する必要があります。

誰かがこれに対する解決策を持っていますか? :(

appframework intel (jqmobi) を使用しています

for (var i=0; i<len; i++){
    var url = "http://172.25.129.30:8180/prax/rest/ocorrenciaJSONBean/consultarStatusOcorrencia/"+results.rows.item(i).id;
    $.get(url,function(data){
        tx.executeSql('UPDATE ocorrencias SET status="'+data.responseText+'" WHERE id = '+results.rows.item(i).id);
    });
};

次のシナリオがあります。

ユーザーがセルで開いた通話のリストを含む内部銀行。私が欲しいのは、銀行のステータスをアップグレードすることです。

今日、私は内部銀行でクエリを実行し、各 ID を使用して Web サービスの場所で get を実行し、通話のステータスを確認します。次のインタラクションは、GET が完了したときにのみ発生するようにしてください。

ここでの問題は、機能が終了すると画面が更新され、「読み込み中です」というメッセージが消えることです。すべての GET が終了する前に終了するため、これは予想よりも早く発生しています。

4

1 に答える 1

0

get は呼び出しの実行を待機していないため、get 関数でコールバックを実行して次の呼び出しを実行する必要があります。次のようなことができます。

var index = -1;
function perform_get(){
    index++;
    var url = "http://172.25.129.30:8180/prax/rest/ocorrenciaJSONBean/consultarStatusOcorrencia/"+results.rows.item(index).id;
    $.get(url,function(data){
        tx.executeSql('UPDATE ocorrencias SET status="'+data.responseText+'" WHERE id = '+results.rows.item(index).id);
    })
    .done(perform_get);
}

現在、次の get 呼び出しの実行を待機しています。

お役に立てれば。

于 2013-08-08T17:00:14.980 に答える