【发布时间】:2016-02-12 18:34:46
【问题描述】:
我想知道你们中是否有人可以帮助我解决这个问题?我开发了一个使用具有 95 个对象存储的索引数据库的 Web 应用程序。数据库在 Chrome 上安装得很好,但通常会在 IE 上产生错误(我想让它运行,原因我不会在这里讨论)。问题是在 onUpgrade 例程中创建了 95 个对象存储(即使我没有将数据放入其中)。下面是代码示例:
encode (NoofCKlistItems,"NoofCKlistItems");
encode (pgtxt,"pgtxt");
//there are 95 statements like the ones above
function encode(j_ThisField,StoreName) {
objectStore = dbInterview.createObjectStore(StoreName);
for (i in j_ThisField) {
itemnumber = parseInt(j_ThisField[i][0], 10);
objectStore.put(j_ThisField[i][1],itemnumber); }
}
我想不出办法来解决这个问题。我尝试使用回调将 95 次调用链接到编码函数,但没有任何变化。我尝试在编码函数的末尾延迟,但随后它丢失了事务。唯一可靠的工作是(a)将对象存储的数量减半,或(b)在编码函数的末尾放置警报,因此程序必须在每个变量处停止(因此您必须单击 95次!)。
安装数据库后,我还没有找到添加到对象存储的方法。升级事件会删除所有内容并重新开始,因此问题仍然存在。
有什么想法吗?
非常感谢
史蒂夫·莫斯
【问题讨论】:
-
你能发布一个 runnable 的例子吗?即使您只是创建一个循环生成 95 个连续的
StoreNames? -
如果它只是 IE 中的一个限制也不会令人震惊,他们的 IndexedDB 实现是相当错误的。
-
嗨杰里米。谢谢你的主意。我之前按照您的建议尝试了循环计数器,但没有帮助。我会看看我是否可以在周末发布一些可运行的东西。史蒂夫·莫斯
标签: javascript internet-explorer indexeddb