FetchEvent
Базовая Широко поддерживается *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с апреля 2018 года.
* Некоторые части этой функции могут иметь различный уровень поддержки.
Примечание: Эта функция доступна только в Сервис-воркерах.
Это тип события для fetch событий, отправленных в глобальном контексте сервис-воркера. Оно содержит информацию о запросе, включая сам запрос и то, как получатель обработает ответ. Оно предоставляет метод event.respondWith(), позволяющий предоставить ответ на этот запрос.
Конструктор
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 |
См. также
© 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