2015-08-27 2 views
0

Каким будет правильный способ реализации веб-исполнителя, который может использовать служебного работника для обработки сетевых вызовов. НапримерСлужебный работник внутри веб-работников

  • У меня есть файл index.html со своей собственной логикой для визуализации данных
  • Затем этот веб-работник отвечает за отправку данных, которая должна быть визуализации и запуска визуализации процесса
  • webworker будет использовать обслуживающий рабочий для извлечения и кэширования сетевых запросов/json данных.

ответ

2

Веб-рабочий и обслуживающий персонал фактически независимы.

Если у вас есть рабочий, контролирующий определенную страницу, то любые HTTP-запросы, которые исходят от этой страницы или веб-рабочего, используемые на этой странице, вызовут событие fetch для этого рабочего. Это относится к HTTP-запросам, вызванным либо fetch(), либо XMLHttpRequest от веб-пользователя. Веб-работнику не нужно «знать» об обслуживающем персонале заранее или что-то еще.

Обратите внимание, что работник службы может отправлять и отвечать на события message так же, как это делает веб-работник, поэтому вы можете избавиться от полного удаления веб-работника и переместить всю свою логику работнику службы. Но это зависит от того, что именно делает ваш веб-работник, и какого уровня поддержки вы хотите использовать для браузеров, которые поддерживают веб-работников, но пока не поддерживают сервис-работников.

0

Служащие имеют ограниченный срок службы. Браузер агрессивно выгружает Service Workers, поэтому в обработчиках существует event.waitUntil(promise) (это только запрос, хотя браузер все равно может его убить)

Для канонического работника службы это нормально, но если вы хотите долго работать параллельный процесс, вам нужен (Web) рабочий.