정기적으로 서비스 작업자로부터 API를 호출하여 localStorage에 저장된 데이터를 보내려고합니다. 이 데이터는 사용자가 내 웹 사이트를 탐색 할 때 생성되고 localStorage에 저장됩니다. localStorage에 통계를 저장하고 서비스 작업자를 통해 주기적으로 보내는 것과 같은 것으로 생각하십시오. 어떻게해야합니까? 서비스 작업자가 localStorage에 액세스 할 수 없으며 postMessage API를 사용해야 함을 이해합니다. 어떤 도움을 주시면 감사하겠습니다.서비스 작업자로부터 localStorage에 액세스하십시오.
2
A
답변
5
webworker 프로세스에서 localStorage (및 sessionStorage)에 액세스 할 수 없으므로 보안상의 이유로 undefined
이됩니다.
다시 작업자의 코드에 postMessage()
을 사용해야하며 해당 코드는 localStorage에 데이터를 저장해야합니다.
로컬 저장소에서 데이터를 저장하고 가져 오려면 localStorage.setItem()
및 localStorage.getItem()
을 사용해야합니다.
더 많은 정보를 정기적으로 아래
의사 코드, 시작 얻을 수 있었으면.
// include your worker
var myWorker = new Worker('YourWorker.js'),
data,
changeData = function() {
// save data to local storage
localStorage.setItem('data', (new Date).getTime().toString());
// get data from local storage
data = localStorage.getItem('data');
sendToWorker();
},
sendToWorker = function() {
// send data to your worker
myWorker.postMessage({
data: data
});
};
setInterval(changeData, 1000)
'var myWorker = new YourWorker ('YourWorker.js'),'>'새 웹Worker'가 맞습니까? – Roberrrt
@Roberrrt, 귀하의 코멘트 주셔서 감사합니다, 올바른'새로운 근로자()'입니다 :) – GibboK
감사하지만 GibboK, 나는 몇 가지 의문이있다. 당신이 언급 한 코드는 내 자바 스크립트 중 하나에서 실행됩니다. 그리고이 실행하려면 사용자가 웹 사이트를 실행해야합니까? 그렇지 않니? 사용자가 내 웹 사이트에 있지 않더라도 서비스 작업자가 로컬 저장소에서 데이터를 주기적으로 보내는 곳을 찾고 있습니다. 내 시나리오도 가능합니까? – Faiz