indexedDB.open() 在 iOS Safari 上大约需要 10 秒
indexedDB.open() takes around 10sec on iOS Safari
我的 iPhone 上的 Web 应用程序中使用了一个 indexedDB 数据库。
最近开始需要更多时间才能开始。在诊断这种情况一段时间后,我发现它发生是因为 indexedDB.open()
运行 持续了 10 秒以上。
这是一个小代码示例
var db;
var promise = utils.promise();
var openRequest = indexedDB.open(this.dbName, this.version);
openRequest.onsuccess = function(evt) {
db = openRequest.result;
promise.resolve();
};
openRequest.onerror = function(evt) {
promise.reject();
onError(evt, 'Database open');
};
数据库本身最近变化不大。我也没有很多数据。它有大约 300 条记录。
知道如何诊断此类问题吗?
UPD可能与https://bugs.chromium.org/p/chromium/issues/detail?id=402980
有关
显然这是 iOS 更新的结果(从 11.1.* 到 11.2.*)。
我已将网络应用程序添加到主屏幕。据我了解,当您进行 iOS 更新时,网络应用程序容器已移至新的 iOS 环境,但保留了原始 iOS 版本的一些功能(可能与使用的 WebView 有关对于网络应用程序,但我不确定)。
所以我再次将我的网络应用程序添加到主屏幕,它立即启动。
我的 iPhone 上的 Web 应用程序中使用了一个 indexedDB 数据库。
最近开始需要更多时间才能开始。在诊断这种情况一段时间后,我发现它发生是因为 indexedDB.open()
运行 持续了 10 秒以上。
这是一个小代码示例
var db;
var promise = utils.promise();
var openRequest = indexedDB.open(this.dbName, this.version);
openRequest.onsuccess = function(evt) {
db = openRequest.result;
promise.resolve();
};
openRequest.onerror = function(evt) {
promise.reject();
onError(evt, 'Database open');
};
数据库本身最近变化不大。我也没有很多数据。它有大约 300 条记录。
知道如何诊断此类问题吗?
UPD可能与https://bugs.chromium.org/p/chromium/issues/detail?id=402980
有关显然这是 iOS 更新的结果(从 11.1.* 到 11.2.*)。
我已将网络应用程序添加到主屏幕。据我了解,当您进行 iOS 更新时,网络应用程序容器已移至新的 iOS 环境,但保留了原始 iOS 版本的一些功能(可能与使用的 WebView 有关对于网络应用程序,但我不确定)。
所以我再次将我的网络应用程序添加到主屏幕,它立即启动。