Spec-Zone.ru › Web APIs

InstallEvent

Базовая поддержка Широко распространена *

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2018 года.

* Некоторые части этой функции могут иметь различный уровень поддержки.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Параметр, передаваемый в обработчик события install, интерфейс InstallEvent представляет действие установки, которое отправляется на ServiceWorkerGlobalScope объекта ServiceWorker. Как дочерний элемент ExtendableEvent, он гарантирует, что функциональные события, такие как FetchEvent, не отправляются во время установки.

Этот интерфейс наследуется от интерфейса ExtendableEvent.

Событие ExtendableEvent InstallEvent

Конструктор

InstallEvent() Экспериментальный

Создаёт новый объект InstallEvent.

Свойства экземпляра

Наследует свойства от родительского класса, ExtendableEvent.

Методы экземпляра

Наследует методы от родительского класса, ExtendableEvent.

addRoutes() Экспериментальный

Определяет один или несколько статических маршрутов, которые определяют правила получения указанных ресурсов, которые будут использоваться даже до запуска service worker.

Примеры

Этот фрагмент кода взят из примера кэширования prefetch service worker (см. рабочий пример prefetch). Код вызывает ExtendableEvent.waitUntil() в ServiceWorkerGlobalScope.oninstall и откладывает обработку ServiceWorkerRegistration.installing worker как установленного, пока соответствующая promise не разрешится успешно. Promise разрешается, когда все ресурсы получены и кэшированы, или когда возникает любое исключение.

Фрагмент кода также демонстрирует лучшую практику по версиированию кэшей, используемых service worker. Хотя в этом примере есть только один кэш, этот подход можно использовать для множества кэшей. Код отображает сокращенный идентификатор для кэша в конкретное именованный кэш с версией.

Примечание: Логирования видны в Google Chrome через интерфейс "Инспектор" для соответствующего service worker, доступного по адресу chrome://serviceworker-internals.

const CACHE_VERSION = 1;
const CURRENT_CACHES = {
  prefetch: `prefetch-cache-v${CACHE_VERSION}`,
};

self.addEventListener("install", (event) => {
  const urlsToPrefetch = [
    "./static/pre_fetched.txt",
    "./static/pre_fetched.html",
    "https://www.chromium.org/_/rsrc/1302286216006/config/customLogo.gif",
  ];

  console.log(
    "Handling install event. Resources to pre-fetch:",
    urlsToPrefetch,
  );

  event.waitUntil(
    caches
      .open(CURRENT_CACHES["prefetch"])
      .then((cache) => {
        return cache
          .addAll(
            urlsToPrefetch.map((urlToPrefetch) => {
              return new Request(urlToPrefetch, { mode: "no-cors" });
            }),
          )
          .then(() => {
            console.log("All resources have been fetched and cached.");
          });
      })
      .catch((error) => {
        console.error("Pre-fetching failed:", error);
      }),
  );
});

Спецификации

Спецификация
Service Workers
# installevent

Совместимость браузеров

Десктоп Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
InstallEvent 40 79 Нет 27 Нет 40 Нет 27 Нет 4.0 40
InstallEvent 40 17 44 27 11.1 40 44 27 11.3 4.0 40
addRoutes 123 123 Нет 109 Нет 123 Нет 82 Нет 27.0 123

См. также

  • install событие
  • NotificationEvent
  • Promise
  • Fetch API

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/InstallEvent

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API