Spec-Zone.ru › Web APIs

FetchEvent

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

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

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

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

Примечание: Эта функция доступна только в Сервис-воркерах.

Это тип события для fetch событий, отправленных в глобальном контексте сервис-воркера. Оно содержит информацию о запросе, включая сам запрос и то, как получатель обработает ответ. Оно предоставляет метод event.respondWith(), позволяющий предоставить ответ на этот запрос.

Событие ExtendableEvent FetchEvent

Конструктор

FetchEvent()

Создаёт новый объект FetchEvent. Этот конструктор обычно не используется. Браузер создаёт эти объекты и предоставляет их обработчикам событий fetch.

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

Наследует свойства от предка, Event.

FetchEvent.clientId Только для чтения

Идентификатор id клиента с тем же происхождением, который инициировал запрос.

FetchEvent.handled Только для чтения

Обещание, которое находится в ожидании, пока событие не обработано, и выполняется, как только оно обработано.

FetchEvent.isReload Только для чтения Устаревший Нестандартный

Возвращает true если событие было вызвано пользователем, пытающимся перезагрузить страницу, и false в противном случае.

FetchEvent.preloadResponse Только для чтения

Обещание Promise для Response, или undefined если этот запрос не является навигацией, или предварительная загрузка навигации не включена.

FetchEvent.replacesClientId Только для чтения

Идентификатор id заменяемого клиента во время навигации по странице.

FetchEvent.resultingClientId Только для чтения

Идентификатор id клиента, который заменяет предыдущего клиента во время навигации по странице.

FetchEvent.request Только для чтения

Запрос Request, который браузер намерен выполнить.

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

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

FetchEvent.respondWith()

Предотвращает обработку запроса по умолчанию браузером и предоставляет (обещание для) свой ответ.

ExtendableEvent.waitUntil()

Удлиняет срок жизни события. Используется для уведомления браузера о задачах, которые выходят за рамки возвращения ответа, таких как потоковая передача и кэширование.

Примеры

Это событие Fetch использует настройки браузера по умолчанию для запросов, отличных от GET. Для запросов GET оно пытается найти совпадение в кэше и, если не находит, обращается к сети. Если совпадение найдено, оно асинхронно обновляет кэш на будущее.

self.addEventListener("fetch", (event) => {
  // Let the browser do its default thing
  // for non-GET requests.
  if (event.request.method !== "GET") return;

  // Prevent the default, and handle the request ourselves.
  event.respondWith(
    (async () => {
      // Try to get the response from a cache.
      const cache = await caches.open("dynamic-v1");
      const cachedResponse = await cache.match(event.request);

      if (cachedResponse) {
        // If we found a match in the cache, return it, but also
        // update the entry in the cache in the background.
        event.waitUntil(cache.add(event.request));
        return cachedResponse;
      }

      // If we didn't find a match in the cache, use the network.
      return fetch(event.request);
    })(),
  );
});

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

Спецификация
Сервис-воркеры
# fetchevent-interface

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
FetchEvent 44 17 44 31 11.1 44 44 32 11.3 4.0 44
FetchEvent 40 17 44 27 11.1 40 44 27 11.3 4.0 40
clientId 49 17 45 36 11.1 49 45 36 11.3 5.0 49
handled 86 86 84 72 16 86 84 61 16 14.0 86
isReload
40Возможно будет удалено в будущей версии, см. ошибку 40487736.
17 44–74 27 Нет
40Возможно будет удалено в будущей версии, см. ошибку 40487736.
44–79 27 Нет 4.0 40
preloadResponse 59 18 99 46 15.4 59 99 43 15.4 7.0 59
request 40 17 44 27 11.1 40 44 27 11.3 4.0 40
respondWith 42 17 44 29 11.1 42 44 29 11.3 4.0 42
resultingClientId 72 79 65 60 16 72 65 50 16 11.0 72

См. также

  • fetch событие
  • 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/FetchEvent

Spec-Zone.ru

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