javascriptの並列処理についてメモ書き。
1. IE10以降ではないと動かない。
2. dom系の処理とかは並列処理の中では動かない。
3. 処理を行っているメモリが違う。

workerメソッド

名前 概要
onmessage ワーカー⇔UIスレッド間でメッセージ取得時のイベント・ハンドラ
onerror エラー発生時のイベント・ハンドラ
postMessage ワーカー⇔UIスレッド間でメッセージを送信
terminate() ワーカーを停止

worker内の制約

オブジェクトまたは機能名 可否
navigatorオブジェクト
locationオブジェクト ○(読み取りのみ)
XMLHttpRequest
JavaScriptファイルのインポート
windowオブジェクト ×
documentオブジェクト ×
parentオブジェクト ×
DOM操作全般 ×

引用元
http://www.atmarkit.co.jp/ait/articles/1201/13/news138.html

index.html
<!DOCTYPE html>
<html>
    <head>
        <title>worker</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
        <script>
            var wkr = new Worker("worker.js");
            wkr.onmessage = function(d) {
                document.getElementById("wkr").innerHTML = document.getElementById("wkr").innerHTML +  d.data + "<br>";
            };
        </script>    
    </head>
    <body>
        <div id="wkr">
        </div>
    </body>
</html>
worker.js
var e = 0;
function en(){
    e = e + 1;
    postMessage((e*3.14));
    if(e < 1000)en();
}
en();
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.