我有以下代碼:的Javascript回調兩個單獨的功能,並在同一個地方輸出
displayOrders: function(){
function getRetailerName(retailerID, callback){
var retailerName;
db.transaction(function(qry){
qry.executeSql("SELECT retailerName FROM retailers WHERE token = '"+retailerID+"' ", [], function(tx, results1){
var len1 = results1.rows.length;
var retailerName;
for (var i1=0; i1<len1; i1++){
retailerName = results1.rows.item(i1).retailerName;
callback(retailerName);
}
});
});
}
db.transaction(function(qry){
qry.executeSql("SELECT * FROM orders", [], function(tx, results){
//query was a success
var len = results.rows.length;
for (var i=0; i<len; i++){
var orderTime = results.rows.item(i).orderTime;
var retailerName;
getRetailerName(results.rows.item(i).retailerID,function(name) { //this uses a callback function... need to because request to DB is a
retailerName = name ;
$('#orderHistoryCollapsible').append('<div data-role="collapsible" data-collapsed="false"><h3>'+retailerName+' - '+orderTime+'</h3><p>Im the collapsible set content for section 1.</p></div>');
$(".orderHistoryCollapsible").collapsibleset();
$(".orderHistoryCollapsible").collapsibleset('refresh');
});
}
});
});
所以基本上代碼運行兩個單獨的數據庫查詢和檢索數據被放入一個列表視圖。所述getRetailerName函數提供其在下面的查詢,這增加了這兩組數據的「orderHistoryCollapsible」 DIV使用回調。
我的問題是,還意味着要插入到DOM中orderTime值返回在每次循環的最後一個值。它幾乎就像兩個查詢需要作爲回調提供?但後來我不知道我將如何將數據追加到正確的地方..
任何幫助,將不勝感激
我從來沒有見過SQL中的JavaScript代碼。如果這是一個常見的DBMS,如MySQL,Oracle等,則應考慮使用SQL連接來提高性能。您可以將所有選擇減少爲一個,然後遍歷該單個結果集。 – 2013-02-27 12:52:50