我正在构建一个我希望在设备上完全本地化的应用程序。我一直在寻找将数据存储在设备上的方法,似乎WebSQL在iOS6 +设备上是持久的。
我一直在查看有关WebSQL的文档,我对如何将其添加到项目中感到有点困惑。
在他们的文档中
function prepareDatabase(ready, error) {
return openDatabase('documents', '1.0', 'Offline document storage', 5*1024*1024, function (db){
db.changeVersion('', '1.0', function (t) {
t.executeSql('CREATE TABLE docids (id, name)');
}, error);
});
}
function showDocCount(db, span) {
db.readTransaction(function (t) {
t.executeSql('SELECT COUNT(*) AS c FROM docids', [], function (t, r) {
span.textContent = r.rows[0].c;
}, function (t, e) {
// couldn't read database
span.textContent = '(unknown: ' + e.message + ')';
});
});
}
prepareDatabase(function(db) {
// got database
var span = document.getElementById('doc-count');
showDocCount(db, span);
}, function (e) {
// error getting database
alert(e.message);
});
他们说'prepareDatabase'函数检查数据库是否已经存在,但是我没有看到该检查的位置,除非回调是 ONLY ,如果数据库没有存在,API部分似乎意味着。
此外,如果数据库大小增长大于创建时提供的估算值,会发生什么?
另一个问题是 HOW 持久性是数据库吗?用户在打开应用程序并看到所有数据都消失后会感到震惊吗?
一如既往,感谢您的帮助。
答案 0 :(得分:0)
打开websql数据库错综复杂。模式是您永远不会在openDatabase
上指定版本。但是,让他们打开任何内容,如果版本不是1.0
,那么你changeVersion
到1.0
。