2011-11-02 78 views
0

解析大型CSV時,我在db.transaction中對INSERT的異步調用有問題。WebSQL:插入多行/事務

問題1:

while(...parse CSV...) { 
db.transaction{ 
...tx.executeSql(INSERT... 
} 
} 

...將進入最後行X倍(X ...在CSV行數)

問題2:

db.transaction{ 
while(...parse CSV...) { 
...tx.executeSql(INSERT... 
} 
} 

...它將達到一定的限制,不會插入任何東西(如果我不使用時,但爲像< 10,它的工作原理,但這個限制是相當小的)。

它類似於這個問題:Web SQL Database + Javascript loop,但遞歸在這裏沒有幫助。

謝謝!

+0

示例#1不起作用,因爲您在while循環內異步創建多個事務,這是不好的。示例#2更好,因爲您正在執行1個事務而不是多個事務,並在單個事務中循環。但是,請添加示例#2的實際代碼,以便我們可以嘗試瞭解爲什麼要施加限制:) –

回答

0

我發現了一種溶劑。最好分割這兩個東西 - 解析CSV,然後使用此函數中的事務調用saveOneRow(column1,column2 ...)等函數。