このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

StorageManager: estimate() メソッド

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2023年9月以降、すべてのブラウザーで利用可能です。

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

メモ: この機能はウェブワーカー内で利用可能です。

estimate()StorageManager インターフェイスのメソッドで、ストレージマネージャーに、現在のオリジンが使用しているストレージの大きさ (usage) と、利用可能な空き容量 (quota) を要求します。

このメソッドは非同期的に動作するので、情報が利用可能になると解決する Promise を返します。プロミスの成功ハンドラーは、使用量とクォータのデータを含む StorageEstimate を入力として受け取ります。

構文

js
estimate()

引数

なし。

返値

Promise で、次のプロパティを持つオブジェクトに解決します。

quota

ユーザーの端末またはコンピューター上で、サイトのオリジンまたはウェブアプリが利用できる総ストレージ容量を控えめに見積もった、バイト単位の数値です。実際にはこの容量よりも多くの空間がある可能性もありますが、それに依存することはできません。

usage

quota で示された利用できる空間のうち、サイトまたはウェブアプリが現在使用するストレージ空間のおおよその値。単位はバイトです。

usageDetails

ストレージシステムごとの usage の内訳を含むオブジェクト。含まれるすべてのプロパティの usage は 0 より大きく、usage が 0 のストレージシステムはオブジェクトから除外されます。

メモ: これらは正確な数値ではありません。圧縮、重複排除セキュリティ上の理由による難読化などが行われるため、正確な値にはなりません。

quota はオリジンごとに異なることに気づくかもしれません。この違いは次のような要因に基づきます。

  • ユーザーが訪れる頻度
  • 公開されたサイトの有名度データ
  • ブックマーク、ホーム画面へ追加、プッシュ通知の受付などのユーザーのエンゲージメントの印

例外

TypeError

ローカルストレージのシェルフの取得に失敗した場合に発生します。例えば、現在のオリジンが不透明なオリジンである場合や、ユーザーがストレージを無効にしている場合などです。

この例では、使用量の概算値を取得し、現在使用しているストレージ容量のパーセント値をユーザーに提示します。

HTML の内容

html
現在、使用可能なストレージの容量 (<span id="quota"></span>) の約  <span id="percent"></span>% を使用しています。

JavaScript の内容

js
navigator.storage.estimate().then((estimate) => {
  document.getElementById("percent").textContent = (
    (estimate.usage / estimate.quota) *
    100
  ).toFixed(2);
  document.getElementById("quota").textContent =
    `${(estimate.quota / 1024 / 1024).toFixed(2)}MB`;
});

結果

仕様書

仕様書
Storage
# dom-storagemanager-estimate

ブラウザーの互換性

関連情報