dongs
dongs
  • 发布:2016-08-04 16:31
  • 更新:2018-03-29 15:30
  • 阅读:3700

websql在openDatabase报version mismatch错误,请问怎么解决?

分类:HTML5+

在js里使用dataBase = window.openDatabase(dbname, '1.0', dbdesc, dbsize, function() {});创建websql的时候经常报一下错误:

unable to open database, version mismatch, '1.0' does not match the currentVersion of ''

重现场景:
1、卸载hbuileder基座。
2、使用hbuilder运行手机app项目时就会出现以上错误。
3、重新运行手机APP项目,又变成一切正常了。

PS:不是退出app重新打开正常,是在hbuilder里重新再运行真机调试就正常了。
还有就是,这个openDatabase可不可以在不同页面经行复用,也就是说,打开APP的时候open一下,然后每个页面都可以使用呢? 或者当成一个APP的全局变量? Hbuilder有没有什么地方可以存储这一类可以复用的对象呢?

另外:为什麽不支持sqllite呢? 那么就算不支持,也得弄个可靠的本地存储方案吧?websql也停止技术支持了,说不定哪天浏览器更新一下就不支持了,还有就是,
不要让我去看http://ask.dcloud.net.cn/article/166 ,该文章避重就轻只说其他方法有多好,目前就没有合适的关系型的本地数据库可以用吗?

2016-08-04 16:31 负责人:无 分享
已邀请:
dongs

dongs (作者)

没人回答吗?

村委

村委

同求 好点的本地存储方式

zapoi

zapoi

同求。

易山川

易山川

我也遇到这个问题了,不要回调函数就行了,还有就是说 我感觉每次打开一个webview都要打开数据库;个人看法

易山川

易山川

我也遇到这个问题了,不要回调函数就行了,还有就是说 我感觉每次打开一个webview都要打开数据库;个人看法

易山川

易山川

我也遇到这个问题了,不要回调函数就行了,还有就是说 我感觉每次打开一个webview都要打开数据库;个人看法

yuanpiaoba

yuanpiaoba

请问楼主解决了吗,我查了很多资料,现在可用的数据库推荐使用indexDB,是一种非关系数据库,但是不支持android4.4是硬伤,我们现在项目里面用的就是websql,但是也是害怕哪天浏览器升级就不支持了,所以我想了一种方法,实现两种web sql和indexDB,如果是android 4.4以下就用web sql,如果是之上就用indexDB

天坑HBulider

天坑HBulider

local storage稍微存储多一点数据就卡,特别是取数据的时候

哲

问题出在 window.openDatabase(dbname, '1.0', dbdesc, dbsize, function() {}); 最后一个回调函数,创建或链接数据库的时候不要提供最后这个回调函数,如果提供了回调函数,回调函数用以调用 changeVersion() 函数,不管给定什么样的版本号,回调函数将把数据库的版本号设置为空。

如果没有提供回调函数,则以给定的版本号创建数据库,因此只要

window.openDatabase(dbname, '1.0', dbdesc, dbsize);

这样创建就不会出现这种情况了。

该问题目前已经被锁定, 无法添加新回复