#javascript #web-worker #worker
#javascript #веб-воркер #рабочий
Вопрос:
Как я могу получить доступ к URL-адресу клиента в Web Worker? Я могу получить доступ к клиенту и URL-адресу в Service Worker с помощью Clients API, но я не нашел способа сделать это с помощью Web Workers.
Мне нужно знать, какую страницу просматривает пользователь, чтобы условно изменить данные, отправленные с веб-воркера. Для разделения проблем я ничего не могу обработать на самом клиенте.
Комментарии:
1. Как насчет window. location.href?
Ответ №1:
Вы не можете. Воркер знает свое собственное местоположение, доступное через self.location
, но у него нет доступа к местоположению его создателя.
Единственный способ — заставить ваш основной поток передавать эту информацию вашему Воркеру, например postMessage
, через .
Комментарии:
1. На этом мои исследования тоже заканчиваются, но, видя, что он доступен для сервисных работников, возникает вопрос, почему не в веб-воркерах тоже?
2. Потому что serviceworkers и webworkers не выполняют одинаковые задания. Предполагается, что ServiceWorker обрабатывает запросы, сделанные основным документом, и он может использоваться несколькими документами. Поэтому он должен видеть каждого клиента индивидуально. У веб-воркера (он же выделенный работник) есть только один «клиент».