Baseline Widely available *
ÐÑо Ñип ÑобÑÑий fetch
, обÑабаÑÑваемÑÑ
в глобалÑном конÑекÑÑе service worker. Ðанное ÑобÑÑие ÑодеÑÐ¶Ð¸Ñ Ð´Ð°Ð½Ð½Ñе о запÑоÑе, вклÑÑÐ°Ñ ÐµÐ³Ð¾ ÑелÑ. Ðно пÑедоÑÑавлÑÐµÑ Ð¼ÐµÑод event.respondWith()
, Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÐºÐ¾ÑоÑого service worker Ð¼Ð¾Ð¶ÐµÑ Ð¾ÑвеÑиÑÑ Ð½Ð° запÑоÑ.
FetchEvent()
СоздаÑÑ Ð½Ð¾Ð²Ñй обÑÐµÐºÑ FetchEvent
. Ðак пÑавило, даннÑй конÑÑÑÑкÑÐ¾Ñ Ð½Ðµ иÑполÑзÑеÑÑÑ. ÐÑаÑÐ·ÐµÑ ÑамоÑÑоÑÑелÑно ÑоздаÑÑ Ð´Ð°Ð½Ð½Ñе обÑекÑÑ Ð¸ пеÑедаÑÑ Ð¸Ñ
в обÑабоÑÑик ÑобÑÑий fetch
.
ÐаннÑй клаÑÑ Ð½Ð°ÑледÑÐµÑ Ð²Ñе ÑвойÑÑва клаÑÑа Event
.
fetchEvent.clientId
ТолÑко Ð´Ð»Ñ ÑÑениÑ
ÐденÑиÑикаÑоÑ
клиенÑа
Ñого же иÑÑоÑника, оÑпÑавивÑего запÑоÑ.
fetchEvent.preloadResponse
ТолÑко Ð´Ð»Ñ ÑÑениÑ
ÐÑомиÑ
Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑа
, или же пÑÑÑой пÑомиÑ, еÑли не пÑоизоÑла навигаÑÐ¸Ñ Ð¸Ð»Ð¸ пÑедзагÑÑзка навигаÑии оÑклÑÑена.
fetchEvent.request
ТолÑко Ð´Ð»Ñ ÑÑениÑ
ÐапÑÐ¾Ñ (Request
) Ð¾Ñ Ð±ÑаÑзеÑа.
fetchEvent.replacesClientId
ТолÑко Ð´Ð»Ñ ÑÑениÑ
ÐденÑиÑикаÑоÑ
клиенÑа
, заменÑемого пÑи навигаÑии.
fetchEvent.resultingClientId
ТолÑко Ð´Ð»Ñ ÑÑениÑ
ÐденÑиÑикаÑоÑ
клиенÑа
, заменивÑего пÑоÑлÑй ÐºÐ»Ð¸ÐµÐ½Ñ Ð¿Ñи навигаÑии.
ÐаннÑй клаÑÑ Ð½Ð°ÑледÑÐµÑ Ð¼ÐµÑÐ¾Ð´Ñ ÐºÐ»Ð°ÑÑа ExtendableEvent
.
fetchEvent.respondWith()
ÐеÑÐµÑ Ð²Ð°ÑÑÐ²Ð°ÐµÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð¸ оÑпÑавлÑÐµÑ Ð¿ÑÐ¾Ð¼Ð¸Ñ Ñ Ð¾ÑвеÑом.
extendableEvent.waitUntil()
ÐÑÐ¾Ð´Ð»ÐµÐ²Ð°ÐµÑ Ð²Ñполнение обÑабоÑÑика ÑобÑÑÐ¸Ñ Ð´Ð¾ завеÑÑÐµÐ½Ð¸Ñ Ð¿ÐµÑеданного пÑомиÑа. ÐÑполÑзÑеÑÑÑ ÑÑÐ¾Ð±Ñ ÑведомиÑÑ Ð±ÑаÑÐ·ÐµÑ Ð¾ ÑобÑÑии, пÑодолжаÑÑемÑÑ Ð¿Ð¾Ñле оÑпÑавки оÑвеÑа, Ñаком как обновление кеÑа или поÑÐ¾ÐºÐ¾Ð²Ð°Ñ Ð¿ÐµÑедаÑа.
Рданном пÑимеÑе вÑе не-GET запÑоÑÑ Ð±ÑдÑÑ Ð¾Ð±ÑабаÑÑваÑÑÑÑ ÑÑандаÑÑнÑми ÑÑедÑÑвами бÑаÑзеÑа. Ð ÑлÑÑае GET запÑоÑов, service worker попÑобÑÐµÑ Ð½Ð°Ð¹Ñи оÑÐ²ÐµÑ Ð² кеÑе, а в ÑлÑÑае его оÑÑÑÑÑÑÐ²Ð¸Ñ Ð¿Ð¾Ð»ÑÑÐ¸Ñ Ð´Ð°Ð½Ð½Ñе Ñ ÑеÑвеÑа. Также, он аÑÐ¸Ð½Ñ Ñонно Ð¾Ð±Ð½Ð¾Ð²Ð¸Ñ Ð´Ð°Ð½Ð½Ñе в кеÑе.
self.addEventListener("fetch", (event) => {
// Ð ÑлÑÑае не-GET запÑоÑа бÑаÑÐ·ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ Ñам обÑабаÑÑваÑÑ ÐµÐ³Ð¾
if (event.request.method != "GET") return;
// ÐбÑабаÑÑваем запÑÐ¾Ñ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð»Ð¾Ð³Ð¸ÐºÐ¸ service worker
event.respondWith(
(async function () {
// ÐÑÑаемÑÑ Ð¿Ð¾Ð»ÑÑиÑÑ Ð¾ÑÐ²ÐµÑ Ð¸Ð· кеÑа.
const cache = await caches.open("dynamic-v1");
const cachedResponse = await cache.match(event.request);
if (cachedResponse) {
// ÐÑли ÐºÐµÑ Ð±Ñл найден, возвÑаÑаем даннÑе из него
// и запÑÑкаем Ñоновое обновление даннÑÑ
в кеÑе.
event.waitUntil(cache.add(event.request));
return cachedResponse;
}
// Ð ÑлÑÑае, еÑли даннÑе не бÑли Ð½Ð°Ð¹Ð´ÐµÐ½Ñ Ð² кеÑе, полÑÑаем иÑ
Ñ ÑеÑвеÑа.
return fetch(event.request);
})(),
);
});
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4