前面的話

  客戶端javascript其中一個(gè)基本的特性就是單線程:比如,瀏覽器無(wú)法同時(shí)運(yùn)行兩個(gè)事件處理程序,它也無(wú)法在一個(gè)事件處理程序運(yùn)行的時(shí)候觸發(fā)一個(gè)計(jì)時(shí)器。Web Worker是HTML5提供的一個(gè)javascript多線程解決方案,可以將一些大計(jì)算量的代碼交由web Worker運(yùn)行從而避免阻塞用戶界面,在執(zhí)行復(fù)雜計(jì)算和數(shù)據(jù)處理時(shí),這個(gè)API非常有用。本文將詳細(xì)介紹Web Worker

 

前提

  在使用Worker之前,首先要檢測(cè)瀏覽器是否支持這個(gè)API

  [注意]IE9-瀏覽器不支持

if (window.Worker) {  // to do }

  使用Web Worker有以下幾點(diǎn)限制:

  同域限制。子線程加載的腳本文件,必須與主線程的腳本文件在同一個(gè)域

  DOM限制。子線程所在的全局對(duì)象,與主進(jìn)程不一樣,它無(wú)法讀取網(wǎng)頁(yè)的DOM對(duì)象,即document、window、parent這些對(duì)象,子線程都無(wú)法得到。(但是,navigator對(duì)象和location對(duì)象可以獲得。)

  腳本限制。子線程無(wú)法讀取網(wǎng)頁(yè)的全局變量和函數(shù),也不能執(zhí)行alert和confirm方法,不過(guò)可以執(zhí)行setInterval和setTimeout,以及使用XMLHttpRequest對(duì)象發(fā)出AJAX請(qǐng)求

  文件限制。子線程無(wú)法讀取本地文件,即子線程無(wú)法打開(kāi)本機(jī)的文件系統(tǒng)(file://),它所加載的腳本,必須來(lái)自網(wǎng)絡(luò)

 

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式