Cache: phương thức add()

Baseline Widely available

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

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 add() của giao diện Cache nhận một URL, lấy dữ liệu từ đó và thêm đối tượng phản hồi kết quả vào bộ nhớ đệm đã cho.

Phương thức add() tương đương về chức năng với đoạn mã sau:

js
fetch(url).then((response) => {
  if (!response.ok) {
    throw new TypeError("bad response status");
  }
  return cache.put(url, response);
});

Đối với các thao tác phức tạp hơn, bạn sẽ cần dùng Cache.put() trực tiếp.

Note: add() sẽ ghi đè bất kỳ cặp khóa/giá trị nào trước đó đã lưu trong bộ nhớ đệm mà khớp với yêu cầu.

Cú pháp

js
add(request)

Tham số

request

Một yêu cầu cho tài nguyên bạn muốn thêm vào bộ nhớ đệm. Đây có thể là một đối tượng Request hoặc một URL.

Tham số này được dùng làm tham số cho hàm khởi tạo Request(), nên URL tuân theo các quy tắc tương tự như hàm khởi tạo đó. Đặc biệt, URL có thể là tương đối so với URL cơ sở, tức là baseURI của tài liệu trong ngữ cảnh cửa sổ, hoặc WorkerGlobalScope.location trong ngữ cảnh worker.

Giá trị trả về

Một Promise phân giải thành undefined.

Ngoại lệ

TypeError

Lược đồ URL không phải là http hoặc https.

Trạng thái phản hồi không nằm trong khoảng 200 (tức không phải phản hồi thành công). Điều này xảy ra nếu yêu cầu không trả về thành công, nhưng cũng xảy ra nếu yêu cầu là một yêu cầu cross-origin no-cors (trong trường hợp đó trạng thái báo cáo luôn là 0).

Ví dụ

Khối mã này chờ một InstallEvent xảy ra, sau đó gọi waitUntil() để xử lý quá trình cài đặt cho ứng dụng. Việc này bao gồm gọi CacheStorage.open để tạo một bộ nhớ đệm mới, sau đó dùng Cache.add để thêm một tài nguyên vào đó.

js
this.addEventListener("install", (event) => {
  event.waitUntil(caches.open("v1").then((cache) => cache.add("/index.html")));
});

Thông số kỹ thuật

Specification
Service Workers Nightly
# cache-add

Khả năng tương thích với trình duyệt

Xem thêm