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

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,以便点击暂停按钮,再点击开始按钮后,继续从上一次暂停的数值开始增加?

阅读 5.8k
1 个回答

web-work是双向通讯的

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

两个js 都是能够使用 postmessage 和onmessage函数的
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题