StorageManager.estimate()

Baseline 2023
Newly available

Since September 2023, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

安全上下文: 此项功能仅在一些支持的浏览器安全上下文(HTTPS)中可用。

**estimate()**方法是StorageManager的一个接口,用于估算某一个域名(或一个站点)下 Storage Manager 的总存储空间和已经使用了的存储空间。此方法为一个异步方法,如果此方法可用,那么其返回一个结果为 resolved 的Promise对象。resolved 接收的参数是一个带有已使用数据存储空间和总可用总存储空间的StorageEstimate对象。

语法

var estimatePromise = StorageManager.estimate();

参数

返回值

StorageEstimate类型的状态为 resolved 的Promise

此数据包含了此应用(或域名)可用的存储空间(StorageEstimate.quota)和目前已经使用了的存储空间(StorageEstimate.usage)。

这些值不是明确的数字,在进行压缩,重复数据删除和出于安全原因起见进行了混淆之后,这个数据是不精确的。

你可能会发现不同的应用或站点分配的存储空间不同,具体取决于用户访问频率,和网站受欢迎程度等数据。

示例

在这个示例中,我们使用 estimate() 得到目前所使用的存储空间占全部存储空间的百分比。

HTML

html
<p>
  You're currently using about <span id="percent"> </span>% of your available
  storage.
</p>

JavaScript

js
navigator.storage.estimate().then(function (estimate) {
  document.getElementById("percent").innerHTML = (
    (estimate.usage / estimate.quota) *
    100
  ).toFixed(2);
});

结果

规范

Specification
Storage
# ref-for-dom-storagemanager-estimate

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
estimate
usageDetails
Non-standard

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Non-standard. Check cross-browser support before using.

参见