js 多線程的方式:web work

1.web work

W3S:https://www.w3schools.com/htmL/html5_webworkers.asp

WebWork 是運行在後臺的 JavaScript,獨立於其他腳本,不會影響頁面的性能。您可以繼續做任何願意做的事情:點擊、選取內容等等,而此時 web worker 在後臺運行。

注意:dom是不能被異步操作的! WebWork不能在本地使用

 

webwork.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>JavaScript多線程</title>
    <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
    <style type="text/css">
    div {
        width: 100px;
        height: 100px;
        cursor: pointer;
        background: orange;
    }
    </style>
</head>

<body>
    <div id="test">
        測試點擊
    </div>

    <script type="text/javascript">
    $('#test').click(function() {
        alert(1);
    });

    var worker = new Worker("task.js");
    worker.onmessage = function(event) {
        // 消息文本放置在data屬性中,
        // oBox.innerHTML = event.data;
        alert(event.data);
    }
    worker.postMessage(500000);
    </script>
</body>

</html>

 

 

task.js

onmessage = function(event) {
    var num = event.data;
    var result = 0;
    for (var i = 0; i < num; i++) {
        result += i;
        console.log(result);
    }

    // 向線程創建源送回消息
    postMessage(result);
}

 

 

2.Concurrent.Thread.js

下載地址:http://download.csdn.net/download/include_define/796952

教程文檔:http://www.cnblogs.com/0banana0/archive/2011/06/01/2067402.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章