此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

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
# dom-storagemanager-estimate

浏览器兼容性

参见