Как я могу получить доступ к URL-адресу клиента в Web Worker?

#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 обрабатывает запросы, сделанные основным документом, и он может использоваться несколькими документами. Поэтому он должен видеть каждого клиента индивидуально. У веб-воркера (он же выделенный работник) есть только один «клиент».