2

indexedDB ドライバーで localforage を使用しています。私の indexedDB ストアはかなり大きいですが、indexedDB のスペースが実際に不足することはなく、古いコンテンツが期限切れになるだけだという印象を受けました。

ただし、60 秒間ハングした後、indexedDB への多数のリクエストが次のエラーで失敗しています。

簡単なことをするだけなら

function testWrite(n) {
  localforage.setItem(`test:${n}`, Math.random().toString(16).slice(2))
  .then((v) => console.log(x))
  .catch((err)=>console.log(err))
}
for (var x = 0; x < 10; x++) {
  testWrite(x)
}

私のwebappを指すシークレットウィンドウでは、正常に動作します。非シークレットウィンドウで同じことをすると、タイムアウトになります。重要なことは、新しいセッションであっても、ループ サイズを大きくすると、同じタイムアウトの問題が発生することです。だから、どこかに適切ではないしきい値があるように感じます。

4

2 に答える 2

1

https://www.html5rocks.com/en/tutorials/offline/quota-research/によると、それはさまざまです。

モバイルでは、Firefox では制限が 5MB ですが、ユーザーは無制限のストレージ使用を許可できますが、Chrome では、指定されたクォータ (設定で調整可能) までデータを保存できます。

デスクトップでは、もちろんユーザーが無制限のストレージを許可しない限り、Firefox には 50MB の制限があります。Chrome では、DevTools > Application > Storage で調整できる Quota を引き続き尊重します。

(Chrome とは Webkit を意味するため、Safari、Opera、および Mobile WebViews も動作するはずです。)

于 2020-04-29T01:29:17.307 に答える