當您達到Web SQL商店的大小限制時,Mobile Safari(和Android瀏覽器)將提示您增加存儲大小。一旦發生這種情況,事務,onSuccess回調或onError回調都將被執行。我似乎也無法在這裏發現任何異常,那麼我該如何處理增加存儲的提示呢?如何處理增加Web存儲的提示?
所有的操作都是異步的,所以我只能想到設置超時並檢查事務在一段時間後是否完成。這當然是一個令人討厭的,錯誤纏身的黑客。除此之外,我必須重新進行交易才能真正檢查空間是否增加。
Fiddle for verifying on mobile browser
// open the jsfiddle in safari
// refuse when prompted to increase space to show the bug
db.transaction(function (tx) {
tx.executeSql("INSERT INTO key_value(key, value) VALUES(?,?);", ["mykey", buildBigString(3*Math.pow(10,6))], function (tx, result) {
// will never be called
done();
}, function (tx, error) {
// will never be called
done();
});
});
相關:http://stackoverflow.com/questions/15066203/websql-transaction-does-rollback-if-size-limit - 已到達 – oligofren