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

一、Worker類

  1、方法介紹

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

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

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

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

  

電腦培訓,計算機培訓,平面設計培訓,網頁設計培訓,美工培訓,Web培訓,Web前端開發(fā)培訓

//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
        
		

網友評論