Baseline Widely available
ÐкÑпеÑименÑалÑÐ½Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ: ÐÑо ÑкÑпеÑименÑалÑÐ½Ð°Ñ ÑеÑ
нологиÑ
Так как ÑпеÑиÑикаÑÐ¸Ñ ÑÑой ÑеÑ
нологии еÑÑ Ð½Ðµ ÑÑабилизиÑовалаÑÑ, ÑмоÑÑиÑе ÑаблиÑÑ ÑовмеÑÑимоÑÑи по Ð¿Ð¾Ð²Ð¾Ð´Ñ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð² ÑазлиÑнÑÑ
бÑаÑзеÑаÑ
. Также замеÑÑÑе, ÑÑо ÑинÑакÑÐ¸Ñ Ð¸ поведение ÑкÑпеÑименÑалÑной ÑеÑ
нологии Ð¼Ð¾Ð¶ÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑÑÑ Ð² бÑдÑÑиÑ
веÑÑиÑÑ
бÑаÑзеÑов, вÑлед за изменениÑми ÑпеÑиÑикаÑии.
ÐеÑод match()
инÑеÑÑейÑа CacheStorage
(доÑÑÑпнÑй ÑеÑез глобалÑное ÑвойÑÑво caches
) пÑовеÑÑÐµÑ ÑвлÑеÑÑÑ Ð»Ð¸ даннÑй Request
или ÑÑÑока url клÑÑом Ð´Ð»Ñ ÐºÐ°ÐºÐ¾Ð³Ð¾-либо Ñ
Ñанимого Response
. ÐеÑод возвÑаÑÐ°ÐµÑ Promise
еÑли Response
найден, или undefined
еÑли Ð½ÐµÑ Ð½Ð¸ одного ÑовпадениÑ.
ÐбÑекÑÑ Cache пÑовеÑÑÑÑÑÑ Ð² поÑÑдке ÑозданиÑ.
ÐÑимеÑание: caches.match()
ÑÑо меÑод Ð´Ð»Ñ ÑдобÑÑва в ÑабоÑе. Ð¢Ð°ÐºÐ°Ñ ÑÑнкÑионалÑноÑÑÑ Ð´Ð¾ÑÑигаеÑÑÑ Ð²Ñзовом cache.match()
Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ обÑекÑа cache (в поÑÑдке полÑÑенном запÑоÑом caches.keys()
) пока Response
не бÑÐ´ÐµÑ Ð½Ð°Ð¹Ð´ÐµÐ½.
caches.match(request, options).then(function(response) { // Ðакие-либо дейÑÑÐ²Ð¸Ñ Ñ response });ÐаÑамеÑÑÑ
Request
Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка. ÐÐ¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¾Ð±ÑекÑом Request
или ÑÑÑокой URL.
ÐбÑекÑ, ÑвойÑÑва коÑоÑого опÑеделÑÑÑ, как пÑовеÑÑеÑÑÑ Ñовпадение в опеÑаÑии ÑопоÑÑавлениÑ. ÐоÑÑÑÐ¿Ð½Ñ ÑледÑÑÑие ваÑианÑÑ:
ignoreSearch
: Boolean
ÑвойÑÑво. ÐпÑеделÑеÑ, ÑледÑÐµÑ Ð»Ð¸ игноÑиÑоваÑÑ Ð¿Ð°ÑамеÑÑÑ Ð·Ð°Ð¿ÑоÑа в ÑÑÑоке url или неÑ. ÐапÑимеÑ, еÑли ÑÑÑановлено true
, паÑамеÑÑÑ ?value=bar
запÑоÑа http://foo.com/?value=bar
бÑдÑÑ Ð¿ÑоигноÑиÑÐ¾Ð²Ð°Ð½Ñ Ð²Ð¾ вÑÐµÐ¼Ñ ÑопоÑÑавлениÑ. ÐнаÑением по ÑмолÑÐ°Ð½Ð¸Ñ ÑвлÑеÑÑÑ false
.ignoreMethod
: Boolean
ÑвойÑÑво. Ðогда ÑÑÑановлено true
, пÑедоÑвÑаÑÐ°ÐµÑ Ð¿ÑовеÑÐºÑ http
меÑода запÑоÑа Request
(обÑÑно ÑазÑеÑÐµÐ½Ñ ÑолÑко GET
и HEAD
.) Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÑановлено false
.ignoreVary
: Boolean
ÑвойÑÑво, опÑеделÑÑÑее, ÑледÑÐµÑ Ð»Ð¸ вÑполнÑÑÑ Ð¿ÑовеÑÐºÑ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° VARY.
ÐÑли ÑÑÑановлено true
, ÑÐ¾Ð²Ð¿Ð°Ð´ÐµÐ½Ð¸Ñ Ð±ÑдÑÑ Ð½Ð°Ð¹Ð´ÐµÐ½Ñ, незавиÑимо Ð¾Ñ Ñого, Ð¸Ð¼ÐµÐµÑ Ð»Ð¸ Response
заголовок VARY
или неÑ. Ðо ÑмолÑÐ°Ð½Ð¸Ñ ÑÑÑановлено false
.cacheName
: СÑÑока DOMString
- Ð¸Ð¼Ñ ÐºÐµÑа Ð´Ð»Ñ Ð¿Ð¾Ð¸Ñка.ÐеÑод возвÑаÑÐ°ÐµÑ Promise
коÑоÑÑй ÑазÑеÑаеÑÑÑ ÑовпавÑим Response
. ÐÑли ни одного Ñовпадений не бÑло найдено, promise ÑазÑеÑаеÑÑÑ Ñ undefined
.
ÐÑо пÑÐ¸Ð¼ÐµÑ Ð¸Ð· MDN sw-test example (Ñм. sw-test running live). Рданном пÑимеÑе, Ð¼Ñ Ð¾Ð±ÑабаÑÑваем ÑобÑÑие FetchEvent
. ÐÑ ÑÑÑоим пÑовеÑÐºÑ Ð¾ÑвеÑа ÑледÑÑÑим обÑазом:
CacheStorage
иÑполÑзÑÑ CacheStorage.match()
. ÐÑли Ñовпадение найдено, возвÑаÑаем response.v1
обÑÐµÐºÑ ÐºÐµÑа, иÑполÑзÑÑ Ð¼ÐµÑод open()
, добавлÑем изнаÑалÑнÑй запÑÐ¾Ñ Ð² ÐºÐµÑ Ð¸ÑполÑзÑÑ Cache.put()
и возвÑаÑаем клониÑованнÑй обÑÐµÐºÑ Ð·Ð°Ð¿ÑоÑа, иÑполÑзÑÑ return response.clone()
. ÐÑо необÑ
одимо, поÑÐ¾Ð¼Ñ ÑÑо меÑод put()
ÑоÑ
ÑанÑÐµÑ Ð² ÐºÐµÑ Ñело запÑоÑа, изменÑÑ, Ñаким обÑазом, изнаÑалÑнÑй запÑоÑ.caches
.match(event.request)
.then(function (response) {
return (
response ||
fetch(event.request).then(function (r) {
caches.open("v1").then(function (cache) {
cache.put(event.request, r);
});
return r.clone();
})
);
})
.catch(function () {
return caches.match("/sw-test/gallery/myLittleVader.jpg");
});
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
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