Въведение в услуга на работниците и

Офлайн режим периодично синхронизиране на заден план, лицеви уведомление - функционалността на стандартните приложения с увереност идва в интернет. Service Worker'y предостави за тази техническа възможност.

Какво е Service Worker

Сервиз Работник - е скрипт, който стартира браузъра във фонов режим, отделно от страницата, отваряйки вратата на възможности, които не изискват дадена уеб страница или да взаимодействат с потребителя. Днес те изпълняват функции като лицеви уведомления и синхронизация фон, бъдещето на услугата Worker'y ще подкрепи други неща. Основна характеристика на тях - е възможността да се намеси и да се справят заявки към мрежата, включително кеширане отговори софтуер за управление.

Преди появата на услуга Worker'ov приложи работа в офлайн режим, позволява на други API - AppCache. AppCache проблем не е само на няколко "капани", но също така и във факта, че тя работи добре в приложения от една страница, но не е подходящ за множество сайтове. Service Worker'y за цел да се избегнат тези проблеми.

Какво трябва да знаете за обслужване на работниците:

Service Lifecycle Worker'a

Service Worker има жизнен цикъл, напълно отделена от уеб страница.

За да инсталирате Service работник в сайта, трябва да го регистрирате на страницата. Регистрация Service Worker'a причини стъпка за инсталиране на браузъра във фонов режим.

Обикновено по време на инсталирането на някои кеширана статични ресурси. Ако всички файлове кеширани успешно, Service Worker е установен. Ако не можете да свалите или да кешира някои от файловете, стъпката на инсталация се счита за неуспешен и Service Worker е активирана (т.е. няма да бъдат инсталирани). Ако това се случи, не се притеснявайте, инсталацията може да се повтори. Но ако Service Worker създадена, тя гарантира, че кеша има правилните ресурси.

След инсталацията, активираща стъпка, на този етап е възможно да се управлява старата кеш паметта, ние ще разгледаме този раздел, за да актуализирате услуга Worker'a.

След активиране на услугата Worker ще контролира всички страници, които са в неговия обхват. Страница, на която Service Worker е било регистрирано, няма да бъдат наблюдавани, докато не се рестартира. Когато Service Worker контролира страница, че е в едно от двете състояния: това е било прекратено, за да запазите паметта или преработка заявки към мрежата и съобщения от страницата.

По-долу е значително опростена версия на жизнения цикъл на обслужване Worker'a когато е инсталиран на първо място.

Въведение в услуга на работниците и

Подкрепа браузър

Service Worker'y по време на това писание, на Chrome и Firefox се поддържат, в Microsoft Edge, те все още са в процес на разработване, и Safari, разработчиците планират да подкрепи прилагането на петгодишен план за развитие. Следвайте поддържат услугата Работниците, моля посетете Джейк Арчибалд.

Регистрация на Работник Service

В горния пример, това се проверява дали поддържа Service Worker API браузър, и ако е така, когато страницата е заредена, ще бъдат изложени /sw.js Service Worker файла.

Можете спокойно да се обадя регистъра () всеки път, когато страницата е заредена, браузърът определя дали предварително инсталиран Service Worker и да го обработи по съответния начин.

Един финес метод регистър () е файлов местоположението на услугата Worker'a. В горния пример, файлът е в основния домейн, което означава, че в обхвата на тази услуга ще Worker'a целия сайт. С други думи, за обслужване на работниците ще получат донесе събития от всички краища на домейна. Ако се регистрирате за обслужване на работник от /example/sw.js файл, той ще бъде в състояние да се справят събития само за страници, URL, който започва с / например / (например, / например / page1 /, / например / page2 /).

Уверете се, че членът на услуга работник може да Chrome: // инспектира / # сервизни работници.

Тест Сервиз Worker'a работите комфортно в този режим, когато отваряте и затваряте прозореца, старата Service Worker няма да се отрази на новата. Всеки кеш се изчиства, когато затворите прозореца.

Инсталиране на услуга Worker'a

Когато страницата започва процеса на регистрация на служба Worker'a, че от своя страна получава инсталацията събитие. В повечето случаи, това събитие манипулатор се кешира файлове, необходими.

Инсталацията манипулатор трябва да направите следното:

  • Отваряне на кеша.
  • За да кешира файлове.
  • Уверете се, че всички необходими ресурси са кеширани.

В по-горе, за първи път се обади cashes.open () с името на кеша, след това добавете файлове в кеша, използвайки caches.addAll (). Тези методи (caches.open () и caches.addAll ()) са PROMIS верига. event.waitUntil () метод отнема PROMIS и го използва, за да се определи дали инсталацията успешно.

Ако всички файлове кеширани успешно, инсталацията е успешна. Ако поне един файл не може да бъде изтеглен, стъпката за монтаж капки. От една страна, той помага да се гарантира, че всички необходими ресурси са в кеша, но, от друга страна, трябва да бъдете внимателни със списъка на файловете да бъдат кеширани.

Това е само един пример, можете да реализирате различна логика манипулатор или инсталиране на обработка събитие изобщо.

Cache и заявка за обработка

След Service Worker е инсталиран, а потребителят се премести в друга страница или опресняване на тока, Service Worker може да се справи с четенето събития, както в примера по-долу.

Тук ние обработваме събитието и донесе event.respondWith () метод преминава Промис върна caches.match (). caches.match () метод търси мач във всички кеш създадени Worker'om Service. Ако отговорът ви е в кеша, ние го върне, ако не, да изпратите запитване до мрежата. Този прост пример използва ресурсите кешират по време на инсталацията. Пример резултати кеширане заявка по-долу:

  • След това добавете процесор да донесе метод ().
  • Получаването на отговор, ние се увери, че то е валидно, отговора за състоянието на 200, и типа на отговора е основен. Вид на основния означава, че отговорът е получена от нашия домейн към другите ресурси на домейни, няма да бъдат кеширани.
  • Ако проверките са преминали, клонинг отговор, ние запишете копие в кеша, но първоначалната реакция се връща към браузъра.

Update Service Worker'a

Рано или късно ще трябва да се актуализира услуга работник. За да направите това:

  • Update Service Worker'a файл. Когато потребител посети сайта, браузърът се опитва да изтегли повторно Service Worker'a файл. Ако новия файл е различен от настоящия, Service Worker се счита за нов.
  • Ако новата услуга Worker, инсталиране на задействаната събитие.
  • На този етап, старата Service Worker все още контролира страницата, докато новите промени към държавата чакат. Когато текущата отворена страница на сайта ще бъдат затворени, старата Service Worker ще бъде убит, и новия контрол на печалба.
  • Когато нов работник служба ще поеме контрола над страницата на събитието предизвика активиране.

В манипулатор, е препоръчително да активирате изпълнение на премахването на ненужните кеш. Защо тук? Ако премахнете някоя от старите манипулатор кешовете в инсталацията, старата Service Worker, които понастоящем контролира тя няма да бъде в състояние да получите достъп до него.

Следващият пример премахва всички кешове, различни от тези, изброени в белия списък:

заключение

Service Worker'y - ключ за технологично развитие на един клас на уеб приложения - напреднали уеб приложения (Progressive уеб приложения).

Функционалност Service Worker'ov все още е доста нов, той съдържа редица проблеми и не се поддържа от всички браузъри. Въпреки това, той е мощен инструмент, който позволява на разработчика за изпълнение на уеб възможности, характерни за стандартните приложения.

Открили сте грешка? Orphus: Ctrl + Enter