Introducere în serviciul lucrătorilor s
Offline modul de sincronizare de fond periodice, push-notificare - funcționalitatea aplicațiilor native cu încredere vine web. Serviciul Worker'y oferă această posibilitate tehnică.
Ce este un serviciu lucrător
Serviciu lucrător - este un script care lansează browser-ul în fundal, separat de pagină, deschizând ușa pentru posibilități care nu necesită o pagină Web sau interacționează cu utilizatorul. Astăzi acestea îndeplinesc funcții, cum ar fi push-notificări și de sincronizare de fond, viitorul serviciu Worker'y va sprijini alte lucruri. O caracteristică esențială a acestora - este abilitatea de a intercepta și de a gestiona cererile de rețea, inclusiv răspunsurile de cache de software de management.
Înainte de apariția Serviciului Worker'ov pune în aplicare de lucru în off-mode, permite altor API - AppCache. AppCache problema nu este doar câteva „capcane“, dar, de asemenea, în faptul că funcționează bine în aplicații de o singură pagină, dar nu este potrivit pentru mai multe site-uri. Serviciul Worker'y conceput pentru a evita aceste probleme.
Ce trebuie să știți despre Serviciul de munca:
Serviciul ciclului de viață Worker'a
Serviciul de munca are un ciclu de viață, complet separate de pe pagina web.
Pentru a instala Muncitorul Serviciul de la site-ul, trebuie să îl înregistrați pe pagina. Serviciu de înregistrare Worker'a cauza etapei de instalare browser-ul în fundal.
De obicei, în timpul instalării unor resurse statice din cache. Dacă toate fișierele din cache cu succes, Serviciul Worker este stabilit. Dacă nu poți descărca sau pentru a cache unele dintre fișierele, etapa de instalare este considerată fără succes și lucrătorul de service este activat (de exemplu, nu va fi instalat). Dacă se întâmplă acest lucru, nu vă faceți griji, instalația poate fi repetată. Dar dacă lucrătorul de servicii stabilit, se asigură faptul că cache-ul are resursele potrivite.
După instalare, etapa de activare, în acest stadiu, este posibil să se administreze cache-ul vechi, ne vom uita la această secțiune pentru a actualiza Worker'a service.
După activarea Muncitorul Serviciul va controla toate paginile care sunt în domeniul său de aplicare. Pagina pe care Serviciul de munca a fost înregistrată, nu va fi monitorizat până când este repornită. Când Serviciul Worker controlează pagina, este într-una din cele două stări: ea este fie terminată pentru a salva de memorie sau de rețea de procesare a cererilor și a mesajelor de pe pagină.
Mai jos, este o versiune mult simplificată a ciclului de viață Serviciul Worker'a atunci când acesta este instalat mai întâi.
![serviciu lucrător Introducere e (lucrător) Introducere în serviciul lucrătorilor s](https://webp.images-on-off.com/25/611/434x423_uv8yi4ywbzsykp75rgmd.webp)
Browser-ul Suport
Worker'y Serviciul de la momentul scrierii, Chrome și Firefox sunt acceptate, în Microsoft Edge, acestea sunt încă în curs de dezvoltare, și Safari, dezvoltatorii planificate pentru a sprijini punerea în aplicare a planului de dezvoltare pe cinci ani. Urmează sprijinul Serviciului Muncitoresc, vă rugăm să vizitați Jake Archibald.
Serviciu lucrător Înregistrare
În exemplul de mai sus, se verifică dacă browser-ul de service Worker API acceptat, și dacă da, atunci când se încarcă pagina, va fi stabilită /sw.js Serviciul Worker fișiere.
Puteți apela în condiții de siguranță registru () de fiecare dată când pagina este încărcată, browser-ul determină dacă instalat anterior Serviciul Muncitorul și procesa în consecință.
Un registru metoda subtilitate () este fișierul Serviciul de localizare Worker'a. În exemplul de mai sus, fișierul este în domeniul rădăcină, ceea ce înseamnă că domeniul de aplicare al acestui serviciu va Worker'a întregul site. Cu alte cuvinte, Serviciul de munca vor primi prelua evenimente din întreaga domeniu. Dacă înregistrați Muncitorul Serviciul de la dosar /example/sw.js, el va fi capabil să se ocupe de evenimente numai pentru pagini, URL-ul care începe cu / exemplu / (de exemplu, / exemplu / Pagina1 /, / exemplu / pagina2 /).
Asigurați-vă că elementul de service muncitorul poate chrome: // inspecta / # service-lucrătorilor.
Test de serviciu Worker'a lucra confortabil în modul incognito, atunci când deschide și închide fereastra, vechiul serviciu Muncitorul nu va afecta cel nou. Orice cache-ul este șters atunci când închideți fereastra incognito.
Instalarea service Worker'a
Atunci când pagina începe procesul de înregistrare a Serviciului Worker'a, care, la rândul său, primește instalarea evenimentului. În cele mai multe cazuri, acest handler eveniment este salvată în memoria cache fișierele necesare.
Handler de instalare ar trebui să facă următoarele:
- Deschideți memoria cache.
- Pentru fișiere cache.
- Confirmați că toate resursele necesare sunt memorate în cache.
În cele de mai sus, noi numim prima cashes.open () cu numele din memoria cache, apoi adăugați fișiere în memoria cache folosind caches.addAll (). Aceste metode (caches.open () și caches.addAll ()) sunt lanț Promis. event.waitUntil () metoda ia PROMIS și o folosește pentru a determina dacă instalarea cu succes.
Dacă toate fișierele din cache cu succes, instalarea este de succes. Dacă cel puțin un fișier nu a putut fi descărcat, etapa de instalare scade. Pe de o parte, ajută să se asigure că toate resursele necesare sunt în cache, dar pe de altă parte, trebuie să fie atent cu lista de fișiere care urmează să fie în cache.
Acesta este doar un exemplu, puteți implementa handler logică diferită sau să instalați de procesare a evenimentului, la toate.
Cache de procesare și de interogare
După ce Serviciul de munca a fost instalat, iar utilizatorul este mutat într-o altă pagină sau să actualizezi curent, Serviciul de munca se poate ocupa de preluare evenimente, la fel ca în exemplul de mai jos.
Aici vom procesa evenimentul și adu event.respondWith (), metoda trece PROMIS returnat caches.match (). caches.match () metoda caută un meci în toate cache-uri create Worker'om serviciu. Dacă răspunsul este în cache-ul, l-am întoarce, dacă nu, trimiteți o solicitare în rețea. Acest exemplu simplu utilizează resursele stocate în memoria cache în timpul instalării. Rezultate Exemplu de cache interogare de mai jos:
- Apoi se adaugă procesorul să aducă metoda ().
- Primirea unui răspuns, vom verifica dacă acesta este valabil, răspunsul de stare 200, iar tipul de răspuns este de bază. Tipul de bază înseamnă că răspunsul este primit din domeniul nostru de la alte resurse de domeniu nu vor fi memorate în cache.
- În cazul în care sunt trecute controalele, ca răspuns clona, vom salva o copie în cache, dar răspunsul original este returnat în browser.
Serviciu de actualizare Worker'a
Mai devreme sau mai târziu trebuie să actualizați Muncitorul de service. Pentru a face acest lucru:
- fișier Serviciu de actualizare Worker'a. Atunci când un utilizator accesează site-ul, browser-ul încearcă să re-descărca fișierul service Worker'a. În cazul în care noul fișier este diferit de curent, Serviciul Worker este considerat nou.
- Dacă noul serviciu Worker, instalați declanșată de un eveniment.
- În această etapă, vechiul Serviciu Muncitorul controlează încă pagina, în timp ce noile modificări la starea de așteptare. Atunci când pagina curentă deschisă a site-ului va fi închis, vechiul serviciu Muncitorul va fi ucis, iar noul control câștig.
- Atunci când un nou serviciu lucrător va obține controlul asupra paginii, evenimentul a declanșat activare.
În handler, este recomandabil să se activeze pună în aplicare eliminarea cache-uri care nu sunt necesare. De ce aici? Dacă eliminați oricare dintre cache-urile handler vechi în procesul de instalare, vechiul serviciu Worker, care controlează în prezent, pagina nu se va putea accesa.
Exemplul următor înlătură toate celelalte decât cele enumerate în lista albă cache:
concluzie
Serviciul Worker'y - dezvoltarea tehnologiei cheie a unei clase de aplicatii web - aplicatii web avansate (Aplicații Progresiv Web).
Funcționalitatea Serviciul Worker'ov este încă destul de nou, acesta conține o serie de probleme și nu este acceptat de toate browserele. Cu toate acestea, este un instrument puternic care permite dezvoltatorului să pună în aplicare capacitățile Web specifice pentru aplicații native.
Ați descoperit o greșeală? Orphus: Ctrl + Enter