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