【发布时间】:2014-03-28 17:51:25
【问题描述】:
我有一个基于 HTML5 / Javascript 的相当数据密集型移动应用程序,它使用 IndexedDb 和 IndexedDbShim 用于本机不支持 idb 的设备。
对于支持 IndexedDb 的设备,应用程序很好,没有数据访问问题。然而,当使用 Safari 在 iPad Mini 上进行测试时,虽然应用程序最初运行正常,但以通常的方式“随机”浏览和使用应用程序会引发以下错误:
- 无法打开数据库(14无法打开数据库文件)
- InvalidStateError:DOM 异常:尝试使用不可用或不再可用的对象。
有没有人在使用 IndexedDbShim 之前遇到过这种问题?
【问题讨论】:
-
你能告诉我们你是如何填充数据库的吗?确保不要打开事务并稍后在异步块中使用它。例如,首先打开一个事务,然后一个 ajax 请求,您将尝试使用它可能会出现您看到的错误。
-
这是 github Indexeddbshim 项目的作者 Dick van den Brink 吗?很高兴见到你!关于交易的想法很有趣。我会看看我们是如何管理交易的。
-
是的,就是我 :) 原作者是其他人顺便说一句,所以大部分功劳应该归于 Parashuram :)
-
Dick 加入我们的 IndexedDB 用户列表!我们很乐意围绕 IDB groups.google.com/forum/#!forum/indexeddb-users 开始社区建设
-
Jonny 很抱歉不能为您提供帮助,但我会尝试研究这个 shim。同时,尝试将每个隔离事务包装到一个立即执行的匿名函数闭包中。我不是 WebSQL 人,但听起来您可能存在事务自动提交问题。
标签: javascript html indexeddb web-sql