我需要创建一个 HTML5 Web SQL 数据库(我意识到它已被弃用)以在 iPad 上使用。过去在 iOS 6 中,您可以立即创建一个 50 MB 的数据库。但是现在 iOS 7 引入了一个 bug(见这篇文章) 阻止创建 50 MB 的数据库。我了解此错误的解决方法是创建一个小型数据库并根据需要对其进行扩展。Safari 会提示用户增加 10 MB、25 MB 和 50 MB。但是,当提示用户增加数据库的大小时,我插入数据的 JavaScript 代码就会停止运行。我究竟做错了什么?(这发生在 iOS 6 和 7 上。)据我所知,没有任何错误。在用户提示增长数据库后如何继续插入?我的 Web SQL 插入代码如下(为简洁起见,省略了一些代码):
db.transaction(function (tx) {
var insertSQL = 'insert into ...';
for (var i = 0; i < len; i++) {
var items = [{}]; // the items to insert
tx.executeSql(insertSQL, items, function (tx, results) {
// When all items are inserted, fire the callback method if there is one
if ((++itemsInserted === itemsToInsert) && $.isFunction(callback)) {
callback();
}
}, function (tx, error) {
if (console && $.isFunction(console.warn)) {
console.warn(error.message);
}
});
}
});
如果最初使用 50 MB 创建数据库,则上述代码在 iOS 6 上运行良好。但是,当数据库开始很小时,此代码将不再工作。感谢您的时间和帮助!
谢谢,
安迪