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:
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
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
Requesthoặ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àbaseURIcủa tài liệu trong ngữ cảnh cửa sổ, hoặcWorkerGlobalScope.locationtrong 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à
httphoặchttps.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 đó.
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> |