Въведение в JavaScript Service Workers

Въведение в JavaScript Service Workers

Чудили ли сте се някога как изглежда, че някои уебсайтове продължават да работят дори когато сте офлайн? Тайната е проста: тези уебсайтове имат обслужващи работници.





Служителите за услуги са ключовата технология зад много от естествените подобни на приложения функции на съвременните уеб приложения.





Какво представляват обслужващи работници?

Обслужващите работници са специализиран вид JavaScript уеб работници . Service Worker е JavaScript файл, който функционира малко като прокси сървър. Той улавя изходящи мрежови заявки от вашето приложение, което ви позволява да създавате персонализирани отговори. Можете например да сервирате кеширани файлове на потребителя, когато е офлайн.





Работниците за услуги също ви позволяват да добавяте функции като фоново синхронизиране към вашите уеб приложения.

код за грешка в помощния център на disney plus 83

Защо обслужващи работници?

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



AppCache изглеждаше добра идея, защото ви позволяваше да посочите активи за кеширане наистина лесно. Той обаче направи много предположения за това, което се опитвате да направите, и след това се счупи ужасно, когато приложението ви не следваше точно тези предположения. Прочетете Джейк Арчибалд (за съжаление озаглавен, но добре написан) Кешът на приложенията е глупак за повече информация. (Източник: MDN )

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





Случаи на употреба за обслужващи работници

И така, какво точно ви позволяват обслужващите работници? Работниците за услуги ви позволяват да добавяте функции, които са характерни за родните приложения към вашето уеб приложение. Те могат също така да осигурят нормално изживяване на устройства, които не поддържат обслужващи работници. Приложения като това понякога се наричат Прогресивни уеб приложения (PWA) .

Ето някои от функциите, които сътрудниците на услугата правят възможни:





  • Позволява на потребителя да продължи да използва приложението (или поне части от него), когато вече не е свързан с интернет. Служителите постигат това чрез обслужване на кеширани активи в отговор на заявки.
  • В браузърите, базирани на Chromium, service worker е едно от изискванията, за да може едно уеб приложение да може да се инсталира.
  • Сервизните работници са необходими, за да може вашето уеб приложение да изпълнява насочени известия.

Жизненият цикъл на обслужващ работник

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

как да търсите в subreddit
  1. Регистрация и изтегляне на работника. Животът на услугата започва, когато JavaScript файл го регистрира. Ако регистрацията е успешна, услугата се изтегля и след това започва да работи в специална нишка.
  2. Когато се зареди страница, контролирана от услугата, услугата получава събитие „инсталиране“. Това винаги е първото събитие, което услугата получава и можете да настроите слушател за това събитие в работната програма. Събитието „инсталиране“ обикновено се използва за извличане и/или кеширане на всички ресурси, от които се нуждае услугата.
  3. След като сервизният работник завърши инсталирането, той получава събитие „активиране“. Това събитие позволява на работника да изчисти излишните ресурси, използвани от предишни обслужващи работници. Ако актуализирате услуга, събитието за активиране ще се активира само когато е безопасно да направите това. Това е, когато няма заредени страници, които все още използват старата версия на услугата.
  4. След това сервизният работник има пълен контрол върху всички страници, които са били заредени след успешното му регистриране.
  5. Последната фаза от жизнения цикъл е резервирането, което се случва, когато сервизният работник бъде премахнат или заменен с по-нова версия.

Как да използвате Service Workers в JavaScript

API на Service Worker ( MDN ) предоставя интерфейса, който ви позволява да създавате и взаимодействате с обслужващи работници в JavaScript.