Baseline Widely available
ÐкÑпеÑименÑалÑÐ½Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ: ÐÑо ÑкÑпеÑименÑалÑÐ½Ð°Ñ ÑеÑ
нологиÑ
Так как ÑпеÑиÑикаÑÐ¸Ñ ÑÑой ÑеÑ
нологии еÑÑ Ð½Ðµ ÑÑабилизиÑовалаÑÑ, ÑмоÑÑиÑе ÑаблиÑÑ ÑовмеÑÑимоÑÑи по Ð¿Ð¾Ð²Ð¾Ð´Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² ÑазлиÑнÑÑ
бÑаÑзеÑаÑ
. Также замеÑÑÑе, ÑÑо ÑинÑакÑÐ¸Ñ Ð¸ поведение ÑкÑпеÑименÑалÑной ÑеÑ
нологии Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑÑÑ Ð² бÑдÑÑиÑ
веÑÑиÑÑ
бÑаÑзеÑов, вÑлед за изменениÑми ÑпеÑиÑикаÑии.
ÐеÑод match()
инÑеÑÑейÑа Cache
возвÑаÑÐ°ÐµÑ Promise
, коÑоÑÑй ÑазÑеÑаеÑÑÑ Ð² Response
, аÑÑоÑииÑованнÑй Ñ Ð¿ÐµÑвÑм ÑовпадаÑÑим запÑоÑом в обÑекÑе Cache
. ÐÑли Ñовпадений не найдено, Promise
ÑазÑеÑаеÑÑÑ Ð² undefined
.
cache.match(request, { options }).then(function (response) {
//ÑделаÑÑ ÑÑо-нибÑÐ´Ñ Ñ Ð¾ÑвеÑом
});
ÐозвÑаÑаемое знаÑение
Promise
, коÑоÑÑй ÑазÑеÑаеÑÑÑ Ð² пеÑвÑй Response
, коÑоÑÑй ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ Ð·Ð°Ð¿ÑоÑом или в undefined
, еÑли Ñовпадений не найдено.
ÐÑимеÑание: Cache.match()
в оÑновном иденÑиÑен Cache.matchAll()
, за иÑклÑÑением Ñого, ÑÑо Cache.match()
ÑазÑеÑаеÑÑÑ Ð² response[0]
(пеÑвÑй ÑовпадаÑÑий оÑвеÑ) вмеÑÑо response[]
(маÑÑив Ñо вÑеми ÑовпадаÑÑими оÑвеÑами).
ÐапÑÐ¾Ñ Request
, коÑоÑÑй Ð²Ñ Ð¿ÑÑаеÑеÑÑ Ð½Ð°Ð¹Ñи в Cache
.
ÐбÑекÑ, коÑоÑÑй задаÑÑ Ð¿Ð°ÑамеÑÑÑ Ð´Ð»Ñ Ð¾Ð¿ÐµÑаÑии match
. ÐопÑÑÑимÑе знаÑениÑ:
ignoreSearch
: ÐÑлево знаÑение Boolean
, коÑоÑое ÑказÑÐ²Ð°ÐµÑ ÑледÑÐµÑ Ð»Ð¸ игноÑиÑоваÑÑ ÑÑÑÐ¾ÐºÑ Ð·Ð°Ð¿ÑоÑа в url. ÐапÑимеÑ, еÑли оно ÑÑÑановлено в true, ÑаÑÑÑ
?value=bar
запÑоÑа http://foo.com/?value=bar
бÑÐ´ÐµÑ Ð¿ÑоигноÑиÑована пÑи поиÑке ÑооÑвеÑÑÑвий клÑÑа. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ñавно false
.ignoreMethod
: ÐÑлево знаÑение Boolean
, коÑоÑое, когда Ñавно true
, пÑедоÑвÑаÑÐ°ÐµÑ Ð¿ÑовеÑÐºÑ http
меÑода Ð´Ð»Ñ Ð·Ð°Ð¿ÑоÑа Request
пÑи вÑполнении ÑопоÑÑавлений клÑÑа (обÑÑно ÑазÑеÑÐµÐ½Ñ Ð»Ð¸ÑÑ GET
и HEAD
). Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ñавно false
.ignoreVary
: ÐÑлево знаÑение Boolean
, коÑоÑое, когда ÑÑÑановлено в true,
ÑказÑÐ²Ð°ÐµÑ Ð¾Ð¿ÐµÑаÑии ÑопоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ»ÑÑа не пÑоводиÑÑ Ð¿ÑовеÑÐºÑ ÑооÑвеÑÑÑÐ²Ð¸Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° VARY
â Ñ.е., еÑли URL ÑовпадаеÑ, Ð²Ñ Ð¿Ð¾Ð»ÑÑиÑе ÑооÑвеÑÑÑвие незавиÑимо Ð¾Ñ Ñого, ÑÑÑановлен ли на обÑекÑе Response
заголовок VARY
. Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ñавно false
.cacheName
: СÑÑока DOMString
, задаÑÑÐ°Ñ Ð¾Ð¿ÑеделÑннÑй ÐºÐµÑ Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка. ÐамеÑÑÑе, ÑÑо ÑÑÐ¾Ñ Ð¿Ð°ÑамеÑÑ Ð¸Ð³Ð½Ð¾ÑиÑÑеÑÑÑ Ð¼ÐµÑодом Cache.match()
.Ð Chrome поддеÑживаеÑÑÑ Ð»Ð¸ÑÑ cacheName
.
Ðод взÑÑ Ð¿ÑимеÑа из пÑимеÑа полÑзоваÑелÑÑÐºÐ°Ñ Ð¾Ñлайн-ÑÑÑаниÑа (живой пÑимеÑ).
СледÑÑÑий пÑÐ¸Ð¼ÐµÑ Ð¸ÑполÑзÑÐµÑ ÐºÐµÑ Ð´Ð»Ñ Ð¿ÑедоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
, когда запÑÐ¾Ñ Ð½Ðµ ÑдалÑÑ. ÐÑÑажение catch()
вÑполнÑеÑÑÑ ÐºÐ¾Ð³Ð´Ð° вÑзов fetch()
возбÑÐ¶Ð´Ð°ÐµÑ Ð¸ÑклÑÑение. ÐнÑÑÑи вÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ catch()
, match()
иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð²Ð¾Ð·Ð²ÑаÑа коÑÑекÑного оÑвеÑа.
Ð ÑÑом пÑимеÑе, Ð¼Ñ ÑеÑили ÑÑо кеÑиÑоваÑÑÑÑ Ð±ÑдÑÑ Ð»Ð¸ÑÑ HTML-докÑменÑÑ Ð¿Ð¾Ð»ÑÑеннÑе Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ GET-запÑоÑа. ÐÑли ÑÑловие if()
Ñавно false, Ñо обÑабоÑÑик не бÑÐ´ÐµÑ Ð²Ð¼ÐµÑиваÑÑÑÑ Ð² оÑвеÑ. ÐÑли заÑегиÑÑÑиÑÐ¾Ð²Ð°Ð½Ñ Ð´ÑÑгие обÑабоÑÑики полÑÑÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ
, Ñо Ñ Ð½Ð¸Ñ
бÑÐ´ÐµÑ ÑÐ°Ð½Ñ Ð²ÑзваÑÑ event.respondWith()
. ÐÑли ни один из обÑабоÑÑиков не вÑÐ·Ð¾Ð²ÐµÑ event.respondWith()
, запÑÐ¾Ñ Ð±ÑÐ´ÐµÑ Ð¾Ð±ÑабоÑан бÑаÑзеÑом, как ÑÑо бÑло Ð±Ñ Ñделано без ÑÑаÑÑÐ¸Ñ ÑеÑÐ²Ð¸Ñ Ð²Ð¾ÑкеÑа. ÐÑли fetch()
возвÑаÑÐ°ÐµÑ Ð²Ð°Ð»Ð¸Ð´Ð½Ñй HTTP оÑÐ²ÐµÑ Ðº кодом из диапазона 4xx или 5xx, Ñо меÑод catch()
не бÑÐ´ÐµÑ Ð²Ñзван.
self.addEventListener("fetch", function (event) {
// ÐÑ Ñ
оÑим вÑполниÑÑ Ð»Ð¸ÑÑ event.respondWith() еÑли ÑÑо GET-запÑÐ¾Ñ HTML-докÑменÑа.
if (
event.request.method === "GET" &&
event.request.headers.get("accept").indexOf("text/html") !== -1
) {
console.log("Handling fetch event for", event.request.url);
event.respondWith(
fetch(event.request).catch(function (e) {
console.error("Fetch failed; returning offline page instead.", e);
return caches.open(OFFLINE_CACHE).then(function (cache) {
return cache.match(OFFLINE_URL);
});
}),
);
}
});
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
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