1. 程式人生 > >javascript event loop

javascript event loop

tps .com 同步 tin 取出 through color HR gin

我們知道 DOM 操作會觸發瀏覽器對文檔進行渲染,如修改排版規則,修改背景顏色等等,那麽這類操作是如何在瀏覽器當中奏效的?至此我們已經知道了事件循環是如何執行的,事件循環器會不停的檢查事件隊列,如果不為空,則取出隊首壓入執行棧執行。當一個任務執行完畢之後,事件循環器又會繼續不停的檢查事件隊列,不過在這間,瀏覽器會對頁面進行渲染。這就保證了用戶在瀏覽頁面的時候不會出現頁面阻塞的情況,這也使 JS 動畫成為可能, jQuery 動畫在底層均是使用 setTimeout 和 setInterval 來進行實現。想象一下如果我們同步的執行動畫,那麽我們不會看見任何漸變的效果,瀏覽器會在任務執行結束之後渲染窗口。反之我們使用異步的方法,瀏覽器會在每一個任務執行結束之後渲染窗口,這樣我們就能看見動畫的漸變效果了

技術分享圖片

Several runtimes communicating together

A web worker or a cross-origin iframe has its own stack, heap, and message queue. Two distinct runtimes can only communicate through sending messages via the postMessagemethod. This method adds a message to the other runtime if the latter listens to message

events.

javascript event loop