2013-02-25 34 views
0

我剛剛注意到,如果您要將數據插入到WebSQL中,並且達到了最大大小限制,iPad會彈出用戶提示您是否要增加尺寸。但是,即使您批准,當前事務也會回滾。我想知道是否有什麼可以做的,以防止回滾,所以你可以繼續?WebSql:如果已達到大小限制,事務會回滾

Here是測試代碼。實際回滾的代碼是

db.transaction(function (tx) { 
    ... // create the table // ... 
    for(var i = 0; i < 10000; i++) { 
     insertData(tx) ; 
    } 
}, 
function() { 
    console.log("Transaction error -> rollback") ; 
}, 
function() { 
    console.log("transaction is ready") ; 
}) ; 

有什麼建議嗎?

乾杯

回答

2

用的WebSQL在my blog post詳述以處理空間不足的情況下的一種方法。基本上,你沒有權力拒絕瀏覽器來提示用戶,所以你必須處理這種情況。簡單的做法是告知用戶您需要更多空間,只需強制重新提示即可增加大小,交易的成功回調將調用您的原始代碼。

如果您真正打算說的是您希望保留所有代碼 - 直到空間用完,您可以保留一個外部索引,指出在事務回滾之前您已經管理了多少內存,然後用前面的限制重做交易。這樣,所有可能填入的數據都將在那裏(其餘的將不會寫入)。