indexedDB.open()在iOS Safari上大约需要10秒

时间:2018-01-06 11:23:11

标签: ios performance web-applications safari indexeddb

我的iPhone上的网络应用程序中使用了一个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

相关

1 个答案:

答案 0 :(得分:0)

显然这是iOS更新的结果(从11.1。*到11.2。*)。

我的网页应用已添加到主屏幕。据我所知,当您进行iOS更新时,Web应用程序容器将移至新的iOS环境,但会保留原始iOS版本的某些功能(可能与用于Web应用程序的WebView相关,但我不确定)。

所以我再次将我的网络应用程序添加到主屏幕,它开始没有延迟。