我刚注意到,如果你将数据插入到WebSQL中,并且je达到最大大小限制,iPad会弹出一个警告,询问你是否要增加大小。但是,即使您批准,当前事务也将回滚。我想知道是否有任何可以阻止回滚的事情,所以你可以继续吗?
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") ;
}) ;
有什么建议吗?
干杯
答案 0 :(得分:2)
my blog post详细介绍了使用WebSQL处理空间不足情况的方法。基本上,您没有权力拒绝浏览器提示用户,因此您必须处理这种情况。简单的做法就是告知用户您需要更多空间,并强制重新提示以增加大小,事务的成功回调会调用原始代码。
如果你真正打算说的是你想要保留所有代码 - 直到你的空间不足,你可以保留一个外部索引,指出在事务回滚之前你设法走了多远,然后重做具有先前限制的交易。这样,所有可能填入的数据都将存在(其余的将永远不会被写入)。