4

HTML5 Webworker API は初めてです。ウェブ ワーカーは、ページのパフォーマンスに影響を与えずにバックグラウンドで実行される JavaScript です。

以下は Webworker API の簡単な例です。Webworker を開始し、他のページやサイトでの作業を停止しない場合。数分後、ブラウザの負荷が高くなり、ブラウザでの作業に問題が発生します。バックグラウンドで実行されていますが、Webworker を停止しないと Webworker が増加し、パフォーマンスの問題に影響を与えるので、「ページのパフォーマンスに影響を与えずに」と述べるにはどうすればよいでしょうか。

Webworker を実際に使用するための適切な例や提案を誰でも提供できますか?また、Webworker を Java Multithreading および Linux Process と比較できますか?

demo.html

<!DOCTYPE html>
<html>
<body>
<p>Count numbers: <output id="result"></output></p>
<button onclick="startWorker()">Start Worker</button> 
<button onclick="stopWorker()">Stop Worker</button>
<script>
    var w;

    function startWorker() {
        if(typeof(Worker)!=="undefined") {
            if(typeof(w)=="undefined") {
                w=new Worker("demo_workers.js");
            }
            w.onmessage = function (event) {
                document.getElementById("result").innerHTML=event.data;
            };
        } else {
            document.getElementById("result").innerHTML="Sorry, your browser does not support Web Workers...";
        }
    }

    function stopWorker() { 
        w.terminate();
    }
</script>
</body>
</html>

demo_workers.js

var i=0;

function timedCount() {
    i=i+1;
    postMessage(i);
    setTimeout("timedCount()",500);
}

timedCount();
4

1 に答える 1