這是用Javascript編寫的for循環。它試圖爲websql應用查詢。只有Javascript中for循環的最後一次運行才能運行
for (var i = 0; i < 10; i++){
db.transaction(function (tx){
tx.executeSql('INSERT INTO ProjSetsT (ProjID) VALUES (?);', [i]);
});
}
的嘗試是顯而易見的,我試圖在表ProjSetsT添加值 「0,1,2,... 9」 到列PROJID。這是行不通的。我只得到最後一個元素,即插入了「9」,但不是前八個數字。
是否有語法錯誤?
語法錯誤會阻止它直接運行:給出的異步背景下,
i
將有你在循環內創建的第一個函數被調用可以使用封閉修復它之前達到其最大尺寸。 WebSQL是一個異步API,你不能指望它以這種方式捕捉正確的值。參見[Web SQL數據庫+ Javascript循環](http://stackoverflow.com/questions/4825455/web-sql-database-javascript-loop)。另外,在一個事務中運行多個查詢的速度更快,並且實際上保證了插入順序。在單獨的事務中運行每個事務是一個隨機排序的慢速免費。 – DCoder
爲什麼不做一個查詢?綁定的值是從for循環中的值構建的字符串。 –