Доступ к localStorage из webWorker
может ли WebWorker получить доступ к localStorage?
Если нет то почему? Это проблематично с точки зрения безопасности?
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 на моей работе.