在移动版 Safari PWA 中,调用
indexedDB.open
时,出现错误“无法打开磁盘上的数据库文件”。
移动端Safari浏览器未作为PWA添加到主屏时不会出现该错误
我不能说出这的直接后果,但是看到这个错误后,数据库经常在刷新时被删除。
WebKit 中似乎从 SQLiteIDBBackingStore.cpp 中的这一行 抛出错误。
这个问题可能是WebKit中的一个错误,因为试图在错误的时间打开数据库。
一种可能的解决方法是减少 IndexedDB 数据库的总数,如@pesterhazy 所述:
使用大量 indexeddb 数据库时的随机异常 (Safari)
有时 Safari 会进入一种奇怪的状态,抛出诸如“无法打开磁盘上的数据库文件”之类的异常。与 indexeddb 方法相关的其他异常也是可能的。
发生这种情况时,令人难以置信的是,主机名解析开始失败。这似乎无关但同时发生,原因不明。
目前还不清楚是什么导致了这个问题,但我一直在观察这个问题,主要是当给定来源有很多 indexeddb 数据库时。不需要为发生此错误而打开数据库。您可以通过删除本地状态来解决此问题。>
您可以通过仅创建少量 indexeddb 数据库来解决此问题。