StorageManager: estimate() 方法
注意:此功能在 Web Workers 中可用。
StorageManager 介面的 estimate() 方法用於向儲存管理器查詢當前 源 (origin) 佔用的儲存空間(usage)以及可用空間(quota)。
此方法是非同步操作的,因此它返回一個 Promise,該 Promise 在資訊可用時解析。Promise 的成功處理函式會接收一個包含使用量和配額資料的物件。
語法
js
estimate()
引數
無。
返回值
一個 Promise,解析為一個具有以下屬性的物件
quota-
一個以位元組為單位的數值,提供了使用者裝置或計算機為站點源或 Web 應用提供的總可用儲存空間的保守估算值。雖然有可能有比此數量更多的可用空間,但不能完全依賴於此。
usage-
一個以位元組為單位的數值,估算了站點或 Web 應用在可用空間(由
quota指示)中當前使用的儲存空間量。單位是位元組。 usageDetails非標準-
一個物件,包含按儲存系統細分的
usage。所有包含的屬性的usage都將大於 0,任何usage為 0 的儲存系統將被排除在此物件之外。
注意: 返回的值並不精確:由於壓縮、去重以及出於安全原因進行的混淆處理,它們會不精確。
您可能會發現 quota 因源而異。這種差異基於以下因素:
- 使用者訪問頻率
- 公開站點流行度資料
- 使用者參與訊號,例如書籤、新增到主螢幕或接受推送通知
異常
TypeError-
如果獲取本地儲存空間失敗,則丟擲此異常。例如,如果當前來源是不透明來源,或者使用者已停用儲存。
示例
在此示例中,我們獲取使用量估算值,並將當前使用的儲存容量百分比呈現給使用者。
HTML
html
<label>
You're currently using about <output id="percent"> </output>% of your
estimated storage quota (<output id="quota"></output>).
</label>
JavaScript
js
navigator.storage.estimate().then((estimate) => {
document.getElementById("percent").value = (
(estimate.usage / estimate.quota) *
100
).toFixed(2);
document.getElementById("quota").value =
`${(estimate.quota / 1024 / 1024).toFixed(2)}MB`;
});
結果
規範
| 規範 |
|---|
| Storage # dom-storagemanager-estimate |
瀏覽器相容性
載入中…