您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“怎么使用WebWorker”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“怎么使用WebWorker”這篇文章吧。
WebWorker是為了解決JavaScript在瀏覽器環境中沒有多線程的問題。正常形況下,瀏覽器執行某段程序的時候會阻塞直到運行結束后在恢復到正常狀態,而html5的WebWorker就是為了解決這個問題,提升程序的執行效率。所以WebWorker的最佳使用場景是執行一些開銷較大的數據處理或計算任務。
webworker的兼容性
目前除了IE,其他主流瀏覽器都已經支持WebWorker。在創建webworker之前,我們一般需要檢測用戶的瀏覽器是否支持它,方法如下:
if(typeof(Worker)!=="undefined"){
//支持
}else{
//瀏覽器不支持
}
webworker的創建
worker是一個對象,通過構造函數Worker創建,參數就是一個js文件的路徑;文件中的js代碼將運行在主線程之外的worker線程;創建worker很簡單,如下:
varmyWorker=newWorker('worker.js');
注意:worker運行在另一個全局上下文中(self),這個全局上下文不同于window,所以不能在woker中訪問window和DOM;
該線程分為兩種:dedicatedworker和sharedworker;dedicatedworker只能被初始化它的js上下文中使用;sharedworker可以在多個js上下文中使用。通常使用的worker是dedicatedworker,它的工作情況可以通過chrome的調試工具查看。
前端開發者應該知道瀏覽器中js和UI公用一個線程,js計算過程中,不能響應UI;如果遇到計算量比較大的任務,如操作圖像像素時,會造成用戶行為得不到響應。WebWorker是為了解決JavaScript在瀏覽器環境中沒有多線程的問題。支持WebWorker的瀏覽器會額外提供一個JavaScriptRuntime供WebWorker使用。它的最佳使用場景是執行一些開銷較大的數據處理或計算任務。
以上是“怎么使用WebWorker”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。