indexedDB跨浏览器还没有?

时间:2015-05-29 07:49:26

标签: indexeddb

是否有其他人发现在Chrome中创建的IndexedDB商店在Firefox中不可见,反之亦然?
我在每个浏览器中都在google.com上创建了一些,但我只能从创建它的浏览器中看到那些。这告诉我,IndexedDB尚未准备好迎接黄金时段

2 个答案:

答案 0 :(得分:1)

  

是否有其他人发现在Chrome中创建的IndexedDB商店在Firefox中不可见,反之亦然?

您寻求的行为不是IndexedDB的设计目标。

答案 1 :(得分:0)

当您再次运行相同的URL时(在新选项卡或不同的浏览器中),会发生的情况是浏览器将查看IndexedDB是否已存在,如果存在,则检查新请求的版本是否存在IndexedDB是否相同。

没有现有的IndexedDB:
如果IndexedDB已经不存在,那么它将创建一个新的。现在,在您的情况下,由于您在不同的浏览器中运行它,因此第一次不会出现IndexedDB,因此将创建一个新的。 *当打开新数据库时,会触发 onupgradeneeded ,这就是创建新架构的地方。*因此,基本上您在Chrome中看到的所有数据都不会在Firefox中显示反之亦然。 这正是您案件中发生的事情。

现有的IndexedDB但版本号不同:
如果IndexedDB已存在,并且新请求的版本号与现有数据存储不同,则将触发 onsuccess onupgradeneeded 。这也意味着您无法看到旧数据。

现有的IndexedDB和相同的版本号:
如果IndexedDB已存在,并且新请求的版本号与现有数据存储相同,则仅触发 onsuccess ,并且不会触发 onupgradeneeded 。这与数据存储区只需打开以进行访问一样好,因此可以看到相同的数据更早。

在旁注中, onsuccess onupgradeneeded 的触发顺序是 - onupgradeneeded 将首先被触发(如果被触发),因为这是您将在其中创建方案或数据存储的位置,然后将触发 onsuccess 事件,您可以在其中保存数据库处理程序以供将来的操作(如select,update等)使用。