javascript中的事件輪詢

基本介紹

  • 堆:存放了大量的非結構化數據,比如變量,對象等
  • 調用桟:會記錄素有的函數調用信息,當我們調用某個函數式,會將其參數與局部變量等壓入桟中
  • 隊列:包含了一些列帶處理的信息與相關聯的回調函數
  • javascript主線程只擁有一個函數調用桟和一個任務隊列

什么是異步

在 Web 開發中,我們常常會需要處理網絡請求等相對較慢的操作,如果將這些操作全部以同步阻塞方式運行無疑會大大降低用戶界面的體驗。另一方面,我們點擊某些按鈕之后的響應事件可能會導致界面重渲染,如果因為響應事件的執行而阻塞了界面的渲染,同樣會影響整體性能。實際開發中我們會采用異步回調來處理這些操作,這種調用者與響應之間的解耦保證了 JavaScript 能夠在等待異步操作完成之前仍然能夠執行其他的代碼。Event Loop 正是負責執行隊列中的回調并且將其壓入到函數調用棧中

圖解

ScreenClip.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容