在Web開發的時候經常會遇到瀏覽器不回應事件進入假死狀態,甚至彈出「腳本運行時間過長「的提示框,如果出現這種情況說明你的腳本已經失控了。 一個瀏覽器至少存在三個執行緒:js引擎執行緒(處理js)、GUI渲染執行緒(渲染頁面)、瀏覽器事件觸發執行緒(控制互動)。 1:JavaScript引擎是基於事件驅動單執行緒執行的,JS引擎一直等待著任務佇列中任務的到來然後加以處理,瀏覽器無論再何時都只有一個JS執行緒在執行JS程式。 2:GUI 渲染執行緒負責渲染瀏覽器介面,當介面需要重繪(Repaint)或因某種操作引發回流(reflow)時,該執行緒就會執行。但要注意GUI渲染執行緒與JS引擎是互斥的,當JS引擎執行時GUI執行緒會被掛起,GUI更新會
1. html5 WebWorkers防止瀏覽器假死的範例程式碼分享
#簡介:在Web開發的時候常常會遇到瀏覽器不會回應事件進入假死狀態,甚至彈出「腳本運行時間過長「的提示框,如果發生這種情況說明你的腳本已經失控了。
簡介:一、前言JavaScript是單執行緒的,固,一次只能執行一個任務,當有一個任務耗時很長時,後面的任務就必須等待。那麼,有什麼辦法,可以解決這類問題呢? (拋開WebWorker不談),那就是讓程式碼非同步執行嘛。什麼意思,如Ajax非同步請求時,就是透過不斷監聽readyState的值,以決定執行指定的回呼函數。 通常的非同步執行有三種,回呼函數、事件監聽以及發布訂閱,其中事件監聽和發布訂閱其實差不多,只是後者更加健壯一些。 如回呼函數,回..
簡介:Web Worker提供了一個簡單的方法使得web 內容能夠在背景執行腳本。一旦worker 建立後,它可以向由它的創建者指定的事件監聽函數傳遞訊息,這樣該worker 產生的所有任務就會接收到這些訊息
【相關問答推薦】:
angular.js - angular 指令中包含webworker 在單元測試中一直報找不到worker 檔案錯誤如何解決?
以上是關於webWorker的10篇課程推薦的詳細內容。更多資訊請關注PHP中文網其他相關文章!