JavaScript 前端工程 好文記錄與分享

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

🏆 超過70萬名讀者已閱讀本站的內容,共同創造了105萬次總閱讀次數!

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,經營 B2B 軟體公司超過 10 年,也持續寫作超過 15 年。
我會持續分享自己對商業、科技與生活的觀察。

如果你喜歡這篇文章,也歡迎追蹤我的社群:
📌 Threads|日常觀察與商業思考
📌 FB|文章與生活分享
📌 IG|旅行、美食短影片