39

ソフト制限(ユーザーが超過する許可を与える必要がある制限)とは何ですか?ハード制限とは何ですか(最大許容)。

4

6 に答える 6

42

2020年5月の更新:Chromeでは、オリジンがストレージデバイスのスペースの60%を使用できるようになりました(実際の要点:「ストレージデバイス」は、Chromeプロファイルディレクトリを含むパーティションです)。ここで更新された記事https://web.dev/storage-for-the-web/#how-much


経験則では、ユーザーのハードドライブの使用可能なスペースの6%(2015年7月編集:10%)であり、オリジンがwebsql、appcache、またはファイルシステムAPIを使用している場合はそれより少なくなります。5mbに言及しているMDNドキュメントは古く、更新されています。現在のポリシーに関する厄介な詳細はここにあります:https ://developer.chrome.com/apps/offline_storage

いくつかの厄介な微妙な点に注意してください。

  1. indexeddb用の永続ストレージはありません。TEMPORARYに関する上記のリンクにあるものだけが適用されます。
  2. オリジンがプールのシェアを使い果たすと、indexeddbトランザクションは役に立たずに中止され、理由はわかりません。現在のところ、クォータの不足が原因であると判断する唯一の方法は、queryUsageAndQuotaを使用して残りのスペースを確認することです。うまくいけば、chromeの将来のバージョンは、これらの場合にIDBTransaction.errorをすぐに適切に入力します。編集:chrome 26は、IDBTransaction.errorにQuotaExceededErrorを正しく入力するようになりました。
  3. 現在、indexeddb用に追加のストレージスペースを要求するAPIはありません。
于 2012-06-18T06:10:44.273 に答える
15

chrome> dev tools(F12)>consoleの次のコードでクォータを確認します

// Request storage usage and capacity left
window.webkitStorageInfo.queryUsageAndQuota(webkitStorageInfo.TEMPORARY, 
//the type can be either TEMPORARY or PERSISTENT
function(used, remaining) {
  console.log("Used quota: " + used + ", remaining quota: " + remaining);
}, function(e) {
  console.log('Error', e); 
} );
于 2013-08-21T06:45:26.597 に答える
8

警告-この情報は古くなっています-以下の他の回答を参照してください。

Chromeには、に達する前に5MBのソフト制限がありQUOTA_ERRます。これがその事実へのMDNリファレンスです。

仕様には言及されていますが、いつスローされるべきかについては何も述べられていQuotaExceededErrorないようです。

QuotaExceededError 十分なストレージスペースが残っていないか、ストレージクォータに達したため、ユーザーがデータベースにさらにスペースを与えることを拒否したため、操作が失敗しました。

私は厳しい限界について聞いたことがなく、私自身の開発でも限界に達していません。パフォーマンスは、到達する前にかなり南に行く必要があります。

于 2012-06-12T23:42:13.607 に答える
7

質問はChromeとタグ付きIndexedDBについてです。そして、それはウェブサイトに関するものであり、Chrome拡張機能やアプリ(IndexedDBの無制限のストレージを許可する)に関するものではないと思います。

ウェブサイトの場合、IndexedDBはChrome Temporary Storage(ソース)のAPIです。したがって、問題はChromeの一時ストレージの割り当てについてです。

Chrome 67では、クォータの動作が変更されました。これは、バグレポートを除いて実際には文書化されていません。まとめると、現在のクォータの動作は次のとおりです。

  • Chromeノーマルモードの場合

    • オフラインAPI(App Cache、ファイルシステム、IndexedDB、WebSQL)の場合:

      「使用可能な状態を維持する必要がある」の値に達した場合、1つのオリジン(「サイト」)のクォータはゼロになります。「使用可能な状態を維持する必要がある」という値は、大容量記憶装置を空けておくためのスペースに関連しています。Chrome 67以降、「2 GiB」と「大容量ストレージの総容量の10%」(ソース)の低い値です。この制限に達すると、一時ストレージへの追加の書き込みは失敗しますが、一時ストレージ内の既存のデータは削除されません。

      「使用可能な状態を維持する必要がある」の値がまだヒットしていない場合、クォータは共有プール(ソース)の20%になります。これは(おそらく)「Chromeによってすでに保存されている一時ストレージ内のすべてのデータの20%に加えて、Chromeが「利用可能なままである必要がある」値に達することなくローカルストレージに保存できるすべてのデータ」を意味します。

    • WebストレージAPI(LocalStorage、SessionStorage、…)の場合:5 MiB固定(ソース ; これが上記の「利用可能なままである必要がある」という制限の影響を受けるかどうかはわかりません。

  • Chromeシークレットモードの場合

    • オフラインAPI(App Cache、ファイルシステム、IndexedDB、WebSQL)の場合:ca 。大容量記憶装置(ソース)の空き容量に関係なく、100MiBが修正されました。
    • WebストレージAPI(LocalStorage、SessionStorage、…)の場合:5 MiBが修正されました(ソース
于 2019-04-02T21:04:46.693 に答える
6

IndexedDBには、GoogleChromeの「TEMPORARY」ストレージからメモリが割り当てられます。Chromeの一時ストレージには、使用可能なディスク容量の50%のデフォルトの割り当てがあり、そのうちの20%はオフラインアプリで使用できます。一時ストレージに対してより多くの割り当てをリクエストしても、何も起こりません。

上記に基づいて、あなたの質問への答えは次のようになります:

  1. IndexedDB(Chromeブラウザー上)は、ストレージを要求せずに使用できます。(一時ストレージから割り当てられていることを知っている)
  2. TEMPORARYストレージ制限(上記の50%の20%が使用可能)を超えて要求しても、何も割り当てられません。

ブラウザストレージの悪用ツール(さまざまなブラウザの結果を文書化したこのHTML5Rocksの記事で引用)を使用して、実行しているChromeで利用可能な一時ストレージを特定できます。

私はより多くのリンクを投稿するのに十分なSOレピュテーションを持っていませんが、クォータリサーチに関する上記のHTML5Rocksの記事には、適切なストレージタイプ(一時的または永続的)と適切なストレージメカニズム(必ずしもゼロにされていない場合)を特定するのに役立つ十分な詳細がありますIndexedDB)は、アプリケーションに適している場合があります。

于 2015-10-01T16:39:52.967 に答える
-2

最小またはソフト制限は5MBです-ブラウザはデータを保存する許可を求めます。すべてのデータがマシンディスクにローカルに保存されるため、最大ストレージはhardriveディスクの制限です。基本的に、20GBの空きストレージがある場合は、IndexedDBのすべてのストレージを使用できます。

于 2012-12-18T23:42:08.890 に答える