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

sessionstorage localstorage web-worker JavaScript

wxhfree 9 years, 6 months ago

web-work是双向通讯的


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

两个js 都是能够使用 postmessage 和onmessage函数的

艾尔曼陀斯 answered 9 years, 6 months ago

Your Answer