StorageManager: phương thức estimate()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2023.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

Phương thức estimate() của giao diện StorageManager hỏi Storage Manager xem origin hiện tại origin đang dùng bao nhiêu dung lượng lưu trữ (usage) và còn bao nhiêu dung lượng trống (quota).

Phương thức này hoạt động bất đồng bộ, vì vậy nó trả về một Promise được giải quyết khi thông tin có sẵn. Trình xử lý khi promise hoàn tất sẽ nhận một đối tượng chứa dữ liệu usagequota.

Cú pháp

js
estimate()

Tham số

Không có.

Giá trị trả về

Một Promise được giải quyết thành một đối tượng có các thuộc tính sau:

quota

Một giá trị số tính bằng byte, cung cấp xấp xỉ thận trọng về tổng dung lượng lưu trữ mà thiết bị hoặc máy tính của người dùng có sẵn cho origin hoặc web app. Có thể còn nhiều dung lượng hơn mức này, nhưng bạn không thể dựa vào điều đó.

usage

Một giá trị số tính bằng byte, xấp xỉ lượng dung lượng lưu trữ hiện đang được dùng bởi site hoặc web app, trên tổng dung lượng sẵn có như quota cho biết. Đơn vị là byte.

usageDetails Không chuẩn

Một đối tượng chứa phân tích usage theo hệ thống lưu trữ. Mọi thuộc tính được bao gồm sẽ có usage lớn hơn 0, và mọi hệ thống lưu trữ có usage bằng 0 sẽ bị loại khỏi đối tượng.

Note: Các giá trị trả về không chính xác tuyệt đối: do nén, khử trùng lặp và làm mờ vì lý do bảo mật, chúng sẽ chỉ mang tính xấp xỉ.

Bạn có thể thấy rằng quota thay đổi giữa các origin. Sự thay đổi này dựa trên các yếu tố như:

  • Tần suất người dùng truy cập
  • Dữ liệu độ phổ biến của site công khai
  • Tín hiệu mức độ tương tác của người dùng như đánh dấu trang, thêm vào màn hình chính, hoặc chấp nhận thông báo đẩy

Ngoại lệ

TypeError

Được ném ra nếu không thể lấy shelf lưu trữ cục bộ. Ví dụ, nếu origin hiện tại là opaque origin hoặc nếu người dùng đã vô hiệu hóa lưu trữ.

Ví dụ

Trong ví dụ này, chúng ta lấy các ước lượng về mức sử dụng và hiển thị cho người dùng phần trăm dung lượng lưu trữ hiện đang được dùng.

HTML

html
You're currently using about <span id="percent"></span>% of your estimated
storage quota (<span id="quota"></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`;
});

Kết quả

Thông số kỹ thuật

Thông số kỹ thuật
Storage
# dom-storagemanager-estimate

Tương thích trình duyệt

Xem thêm