MDN определяет работников как:
Интерфейс Worker API Web Workers представляет собой фоновую задачу, которую можно легко создать и которая может отправлять сообщения своему создателю.
Что это на самом деле означает? Ну, JavaScript работает в одном потоке, а модель параллелизма реализована с использованием обратных вызовов, которые помещаются в очередь событий.
Рабочие процессы нарушают этот шаблон, позволяя разработчикам создавать новые дочерние задачи, которые могут взаимодействовать с основным потоком посредством обмена сообщениями. Типы действий, которые могут выполнять рабочие, варьируются от выполнения вызовов Ajax до перехвата HTTP-запросов и доставки содержимого из кэша.
Теперь, когда это не так, давайте посмотрим, какие типы рабочих существуют:
В центре внимания статьи сервисные работники.
Как использовать ПО
Это довольно легко, правда. Все, что нам нужно сделать, это зарегистрировать сервис-воркера в одном из наших *.js
файлов, которые загружаются из hmtl.
С этого момента service-worker.js
работает в собственной изолированной среде без доступа к DOM.
ПРИМЕЧАНИЕ. мы можем передать второй аргумент функции
register
, чтобы определить область применения SW. В этом случае ПО сможет обрабатывать все запросы, поступающие от файлов, которые относительно расположены на том же уровне, что и файл ПО (включая вложенные папки, если они есть). Например.
Как я упоминал ранее, рабочие могут общаться с вызывающей стороной только через messages
API.
Все, что нам осталось сделать, это применить ту же технику внутри нашего ПО.
Выводы
Рабочие — это столь необходимый свежий воздух в мире JavaScript. Они обеспечивают долгожданное изменение темпа по сравнению с ванильным JS.
В этой статье я рассмотрел базовые применения Service Workers, однако на этом веселье не заканчивается. Предстоит еще многое рассказать:
В моем будущем посте в блоге я буду исследовать все вышеперечисленное, используя технологию Google под названием Workbox.
Нашли ошибку? Дайте мне знать в комментариях!
Первоначально опубликовано на gist.github.com.