Service Worker-ի Lifecycle-ը
Service Worker-ի Lifecycle-ը
Service Worker-ը անցնում է մի քանի փուլով՝ install → waiting → activate → controlling։ Այն չի սկսում անմիջապես ղեկավարել էջերը մինչև չանցնի որոշ քայլեր։ Այդ lifecycle-ը հասկանալը կարևոր է՝ ճիշտ թարմացումներ և վերահսկում ապահովելու համար։
Եթե sw.js
ֆայլը փոփոխվում է, բրաուզերը ավտոմատ փորձում է թարմացնել Service Worker-ը։ Սակայն նոր տարբերակը չի ակտիվացվում, քանի դեռ բոլոր էջերը փակ չեն կամ մենք չփորձենք մանիպուլացնել դա։
self.skipWaiting()
մեթոդը ստիպում է նոր Service Worker-ին միանգամից անցնել activate
փուլ՝ առանց սպասելու, որ հինը դադարի։
self.addEventListener('install', event => {
self.skipWaiting();
});
Ուշադրություն․ Սա կարող է վտանգավոր լինել, եթե հին քեշերը դեռ անհրաժեշտ են՝ ուստի պետք է օգտագործել զգուշությամբ։
self.clients.claim()
մեթոդը թույլ է տալիս ակտիվացած Service Worker-ին անմիջապես ղեկավարել բոլոր բացված էջերը։
self.addEventListener('activate', event => {
event.waitUntil(clients.claim());
});
Lifecycle-ի կառավարման համադրություն
self.addEventListener('install', event => {
self.skipWaiting();
});
self.addEventListener('activate', event => {
event.waitUntil(clients.claim());
});
Այս մեթոդներով կարող ենք ապահովել, որ օգտատերը անմիջապես տեսնի թարմացումը՝ առանց էջը փակելու ու նորից բացելու։