如何用localstorage存储web-worker中的数值,以便下次web-worker再次使用。

发布于 2022-09-01 15:51:16 字数 1268 浏览 43 评论 0

html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
    <script src="index.js"></script>
</head>
<body>
    <div id="numDiv">0</div>
    <button id="start">点击开始</button>
    <button id="stop">点击暂停</button>
</body>
</html>

调用web-worker部分的js:

var numDiv;
var work = null;

window.onload = function(){
    numDiv = document.getElementById("numDiv");
    document.getElementById("start").onclick = startWorker;
    document.getElementById("stop").onclick = function(){
        if(work){
            work.terminate();
            work = null;
        }
    }
}

function startWorker(){
    if(work){
        return;
    }
    work = new Worker("count.js");
    work.onmessage = function(e){
        numDiv.innerHTML = e.data;
        sessionStorage.sum = e.data;
    }
}

web-worker:实现一个自加的功能。

var countNum = 0;
function count(){
    postMessage(countNum);
    countNum++;
    setTimeout(count,1000);
    localStorage.num = countNum;
}

count();

现在的问题是如何存储web-worker中的返回值countNum,以便点击暂停按钮,再点击开始按钮后,继续从上一次暂停的数值开始增加?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不念旧人 2022-09-08 15:51:16

web-work是双向通讯的

 在 调用web-worker js的页面postmess最后web-work传回来的countNum 到web-work页面
进行累计之后再 postmessage回来就好了

两个js 都是能够使用 postmessage 和onmessage函数的
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文