gpt4 book ai didi

javascript - 从 service worker 访问 localStorage

转载 作者:太空狗 更新时间:2023-10-29 15:39:58 26 4
gpt4 key购买 nike

我想定期从我的服务 worker 调用 API 来发送存储在 localStorage 中的数据。当用户浏览我的网站时,这些数据将产生并保存在 localStorage 中。把它想象成在 localStorage 中保存统计数据并通过 service worker 定期发送它。我应该怎么做?我知道我无法从服务工作人员访问 localStorage 并且必须使用 postMessage API。任何帮助将不胜感激。

最佳答案

您不能从 webworker 进程访问 localStorage(以及 sessionStorage),它们的结果将是 undefined,这是出于安全原因。

您需要使用 postMessage() 返回到 Worker 的原始代码,并让该代码将数据存储在 localStorage 中。

您应该使用 localStorage.setItem()localStorage.getItem() 从本地存储中保存和获取数据。

更多信息:

Worker.postMessage()

Window.localStorage

下面是伪代码,希望它能让你入门:

 // 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)

关于javascript - 从 service worker 访问 localStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40887635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com