-2

我需要一个函数来更新我的数据库中的一些信息(我正在使用 websql)。在我的应用程序中,我显示了一个用于更新的加载框,但是,for 在 get 函数完成并且加载框 e 关闭之前结束。

我需要 for 的下一次交互仅在 get 完成时发生。

有人对此有解决方案吗?:(

我正在使用 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 完成之前。

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 回答