There is no doubt that JavaScript是沒有多線程之說的,他只能一件事一件事的做,做完一件事再做下一件事,假如你的js要花一段比較長的時間做一件事的話,那么瀏覽器將會卡頓一段時間,不對用戶的操作產(chǎn)生響應(yīng),這可咋辦呢?謝天謝地,HTML5為我們提供了實現(xiàn)多線程的機制,這么好的東西,想必你早就再用了,不過沒關(guān)系啊,咱們一塊兒復(fù)習(xí)一下咯!

一、Worker類

  1、方法介紹

 ?。?)構(gòu)造函數(shù) new Worker(arg)  :參數(shù)表示你的線程要執(zhí)行的代碼所在的js文件,例如‘myworker.js’,構(gòu)造函數(shù)當然是返回一個Worker類的實例

  (2)worker.postMessage(message):這個方法表示從主線程向子線程發(fā)送消息或者子線程向主線程發(fā)送消息,message一般是一個字符串,也可以將一個js對象轉(zhuǎn)成字符串發(fā)過去

 ?。?)worker上還有一個message事件,當有人向這個worker實例發(fā)送消息時,該事件被觸發(fā),我們可以從他的事件對象的data屬性中獲得post過來的值

  可以看到Woker類的API是相當簡潔的,只有兩個最常用的方法,一個事件,下面我們來通過實際的例子看看。

  

電腦培訓(xùn),計算機培訓(xùn),平面設(shè)計培訓(xùn),網(wǎng)頁設(shè)計培訓(xùn),美工培訓(xùn),Web培訓(xùn),Web前端開發(fā)培訓(xùn)

//main.html<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>main</title></head><body>
    <div id="out"></div>
    <input type="text" name="" id="txt">
    <button id="btn">發(fā)送</button>
    <script type="text/javascript">
        var out = document.getElementById("out");        var btn = document.getElementById("btn");        var txt =&nb