Доступ к localStorage из webWorker


может ли WebWorker получить доступ к localStorage?

Если нет то почему? Это проблематично с точки зрения безопасности?

3 51

3 ответа:

нет, localStorage и sessionStorage не определены в процессе webworker.

вам придется позвонить postMessage() вернуться к исходному коду работника, и пусть этот код хранит данные в localStorage.

интересно, webworker можете используйте вызов AJAX для отправки / получения информации на / с сервера, так что это может открыть возможности, в зависимости от того, что вы пытаетесь сделать.

веб-работники имеют доступ только к следующим:

  • XMLHttpRequest
  • Кэш Приложения
  • создание других веб-работников
  • навигатор объекта
  • расположение объекта
  • метод setTimeout
  • метод clearTimeout
  • метод setInterval
  • метод clearInterval
  • способ importScripts
  • JSON
  • работник

окне или родительские объекты недоступны из веб-работника, поэтому вы не можете получить доступ к localStorage.

для связи между window и workerglobalscope вы можете использовать postMessage() функция и событие onmessage.

доступ к DOM и окну не будет потокобезопасным, так как дочерний поток будет иметь те же права, что и его Родительский.

можно использовать IndexedDB на WebWorkers это способ хранить вещи локально в хранилище ключевых значений. Это не то же самое, что localStorage, но он имеет аналогичные случаи использования и может содержать довольно много данных. Мы используем IndexedDB в WebWorkers на моей работе.