ContentIndex: phương thức getAll()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Note: This feature is available in Web Workers.

Phương thức getAll() của giao diện ContentIndex trả về một Promise được giải quyết với một danh sách có thể lặp các mục trong chỉ mục nội dung.

Cú pháp

js
getAll()

Tham số

Không có.

Giá trị trả về

Trả về một Promise được giải quyết với một Array các mục contentDescription.

contentDescription

Mỗi mục được trả về là một Object chứa dữ liệu sau:

id

Một mã định danh String duy nhất.

title

Một tiêu đề String của mục. Được dùng trong các danh sách nội dung hiển thị cho người dùng.

description

Một mô tả String của mục. Được dùng trong các danh sách nội dung hiển thị cho người dùng.

url

Một String chứa URL của tài liệu HTML tương ứng. URL này phải nằm trong phạm vi của service worker hiện tại.

category Optional

Một String xác định danh mục của nội dung. Có thể là:

  • '' Một String rỗng, đây là giá trị mặc định.
  • homepage
  • article
  • video
  • audio
icons Optional

Một Array các tài nguyên ảnh, được xác định dưới dạng một Object với dữ liệu sau:

src

Một URL String của ảnh nguồn.

sizes Optional

Một String biểu diễn kích thước ảnh.

type Optional

MIME type của ảnh.

label Optional

Một chuỗi biểu diễn tên có thể truy cập của biểu tượng.

Ngoại lệ

Không có ngoại lệ nào được ném ra. Nếu không có mục nào trong Content Index, một Array rỗng sẽ được trả về.

Ví dụ

Ví dụ bên dưới cho thấy một hàm bất đồng bộ lấy các mục trong chỉ mục nội dung rồi lặp qua từng mục để xây dựng một danh sách cho giao diện.

js
async function createReadingList() {
  // truy cập service worker registration
  const registration = await navigator.serviceWorker.ready;

  // lấy các mục trong chỉ mục
  const entries = await registration.index.getAll();

  // tạo phần tử chứa
  const readingListElem = document.createElement("div");

  // kiểm tra xem có mục nào không
  if (entries.length === 0) {
    // nếu không có mục nào, hiển thị thông báo
    const message = document.createElement("p");
    message.innerText =
      "You currently have no articles saved for offline reading.";

    readingListElem.append(message);
  } else {
    // nếu có mục, hiển thị chúng dưới dạng danh sách liên kết tới nội dung
    const listElem = document.createElement("ul");

    for (const entry of entries) {
      const listItem = document.createElement("li");

      const anchorElem = document.createElement("a");
      anchorElem.innerText = entry.title;
      anchorElem.setAttribute("href", entry.url);

      listElem.append(listItem);
    }

    readingListElem.append(listElem);
  }
}

Thông số kỹ thuật

Specification
Content Index
# content-index-getall

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

Xem thêm