溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用WebWorker

發(fā)布時間:2021-09-23 09:34:19 來源:億速云 閱讀:181 作者:小新 欄目:開發(fā)技術

這篇文章主要為大家展示了“怎么使用WebWorker”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“怎么使用WebWorker”這篇文章吧。

  WebWorker是為了解決JavaScript在瀏覽器環(huán)境中沒有多線程的問題。正常形況下,瀏覽器執(zhí)行某段程序的時候會阻塞直到運行結束后在恢復到正常狀態(tài),而html5的WebWorker就是為了解決這個問題,提升程序的執(zhí)行效率。所以WebWorker的最佳使用場景是執(zhí)行一些開銷較大的數(shù)據(jù)處理或計算任務。

  webworker的兼容性

  目前除了IE,其他主流瀏覽器都已經(jīng)支持WebWorker。在創(chuàng)建webworker之前,我們一般需要檢測用戶的瀏覽器是否支持它,方法如下:

  if(typeof(Worker)!=="undefined"){

  //支持

  }else{

  //瀏覽器不支持

  }

  webworker的創(chuàng)建

  worker是一個對象,通過構造函數(shù)Worker創(chuàng)建,參數(shù)就是一個js文件的路徑;文件中的js代碼將運行在主線程之外的worker線程;創(chuàng)建worker很簡單,如下:

  varmyWorker=newWorker('worker.js');

  注意:worker運行在另一個全局上下文中(self),這個全局上下文不同于window,所以不能在woker中訪問window和DOM;

  該線程分為兩種:dedicatedworker和sharedworker;dedicatedworker只能被初始化它的js上下文中使用;sharedworker可以在多個js上下文中使用。通常使用的worker是dedicatedworker,它的工作情況可以通過chrome的調試工具查看。

  前端開發(fā)者應該知道瀏覽器中js和UI公用一個線程,js計算過程中,不能響應UI;如果遇到計算量比較大的任務,如操作圖像像素時,會造成用戶行為得不到響應。WebWorker是為了解決JavaScript在瀏覽器環(huán)境中沒有多線程的問題。支持WebWorker的瀏覽器會額外提供一個JavaScriptRuntime供WebWorker使用。它的最佳使用場景是執(zhí)行一些開銷較大的數(shù)據(jù)處理或計算任務。

以上是“怎么使用WebWorker”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI