PWA 中的 IndexedDB 错误:无法打开磁盘上的数据库文件

问题描述 投票:0回答:1

在移动版 Safari PWA 中,调用

indexedDB.open
时,出现错误“无法打开磁盘上的数据库文件”。

移动端Safari浏览器未作为PWA添加到主屏时不会出现该错误

我不能说出这的直接后果,但是看到这个错误后,数据库经常在刷新时被删除。

mobile-safari indexeddb
1个回答
0
投票

WebKit 中似乎从 SQLiteIDBBackingStore.cpp 中的这一行 抛出错误。

这个问题可能是WebKit中的一个错误,因为试图在错误的时间打开数据库。

一种可能的解决方法是减少 IndexedDB 数据库的总数,如@pesterhazy 所述:

使用大量 indexeddb 数据库时的随机异常 (Safari)

有时 Safari 会进入一种奇怪的状态,抛出诸如“无法打开磁盘上的数据库文件”之类的异常。与 indexeddb 方法相关的其他异常也是可能的。

发生这种情况时,令人难以置信的是,主机名解析开始失败。这似乎无关但同时发生,原因不明。

目前还不清楚是什么导致了这个问题,但我一直在观察这个问题,主要是当给定来源有很多 indexeddb 数据库时。不需要为发生此错误而打开数据库。您可以通过删除本地状态来解决此问题。>

您可以通过仅创建少量 indexeddb 数据库来解决此问题。

https://gist.github.com/pesterhazy/4de96193af89a6dd5ce682ce2adff49a#random-exceptions-when-working-with-a-large-number-of-indexeddb-databases-safari

© www.soinside.com 2019 - 2024. All rights reserved.