Недавно меня удивило электронное письмо, в котором говорилось, что меня приняли в программу стипендий, организованную Udacity и Google. Это 3-месячная программа, которая приведет меня к одной из программ Udacity Nanodegree, если она будет выбрана.

Одна из тем, которую мне нужно изучить за эти 3 месяца, — Service Worker. В этом посте я напишу про Service worker, что это за функция, как она работает и для чего используется.

Что такое сервисный работник?

Из самого названия уже можно предположить, что это какой-то работник, который окажет вам услугу. Но что и где рабочий? И о какой службе здесь идет речь? Прежде всего, сервис-воркер — это всего лишь небольшой, но мощный код или файл javascript, который может контролировать поведение вашего приложения в сети или, в частности, в автономном режиме.

Service worker — это в основном рабочий уровень, который работает между вашим приложением, браузером и сетью. Это рабочий процесс, который может соответствующим образом контролировать поведение приложения, перехватывая его сообщения и ответы. С перехваченными данными сервис-воркер может делать все, что ему нужно, включая настраиваемую маршрутизацию и сохранение данных.

Как это работает?

Чтобы лучше понять, я всегда представляю, что работник сферы услуг похож на кухонного экспедитора, работающего в ресторане. Кухонный экспедитор — это человек, который является посредником между интерфейсом или серверами, кухней и управлением рестораном. Как посредник, экспедитор будет обрабатывать все заказы с сервера. Одновременно может поступать много заказов, и экспедитор должен управлять заказом и предоставлять кухонному персоналу правильную информацию. Когда еда будет готова, экспедитор снова правильно распорядится едой и предоставит официанту правильное блюдо в соответствии с заказами. Помимо этих функций, экспедитор также следит за тем, чтобы качество и скорость доставки еды соответствовали KPI управления. Самое замечательное в этом посреднике то, что экспедитор не имеет доступа или полномочий ни в передней части, ни в кухне, но достаточно силен, чтобы контролировать вход и выход между кухней и клиентами.

Для чего он используется?

Связь очень важна в наше время. Люди почти 24 часа в сутки подключены к Интернету. Разработчики стараются сделать свои приложения всегда доступными независимо от состояния сети. С точки зрения бизнеса, вторая сеть не работает, компания может потерять миллиард долларов с точки зрения потенциального дохода и, в худшем случае, потери клиентов. Вот почему теперь существует новый способ разработки приложения, и это первый подход в автономном режиме. Для достижения этой цели создается Service Worker, используемый для этой цели. Service Worker дает разработчику полный контроль над поведением и реакцией приложения в любом состоянии сети.

Это означает, что благодаря Service Worker вы больше никогда не получите сообщение об ошибке сети, если попытаетесь использовать свое любимое приложение в туннеле или в очень удаленной области.