前端工程 好文記錄與分享

[好文分享] JavaScript Concurrency model and Event Loop

商業,創業,業務,職涯,美食,葡萄酒,閱讀,網路科技。
從 Larry 創業以及商業的經驗,希望以白話的口吻,介紹給大家這個商業的世界。
FB粉絲頁 Larry的午茶時光
IG Larry的午茶時光 歡迎大家追蹤~

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/EventLoop

JavaScript 是 event driven 的, 在當下 event handler (包含他所有 call stack) 結束之前, 是不會被 interrupt 的. 如果當下 event handler 在執行中又有其他 event, 則 queue 起來再處理. By this model, JavaScript 在撰寫時有幾點要注意:

1. As the link says “A good practice to follow is to make message processing short and if possible cut down one message into several messages.”
2. 避免 recursive function calls, 即使有的話也要特別注意.
3. 真的要開 thread 就要用 web workers. 他 postMessage 一樣加到 message queue 等待執行.
4. Ajax XHR 的 onreadystatechange event 一樣是加到 message queue 等待執行.

商業,創業,業務,職涯,美食,葡萄酒,閱讀,網路科技。
從 Larry 創業以及商業的經驗,希望以白話的口吻,介紹給大家這個商業的世界。
FB粉絲頁 Larry的午茶時光
IG Larry的午茶時光 歡迎大家追蹤~

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *