1. 程式人生 > >【深入淺出node.js】二刷劃重點

【深入淺出node.js】二刷劃重點

Node 的特點

1.非同步IO

前端:Ajax請求為最典型,前端請求傳送請求後,執行其他後續程式碼,後續執行完成後,通過‘Don’t call me,I will call you’的原則,返回前端結果。

後端:以檔案讀取為例,可以發起讀取檔案後,執行其他操作,等檔案讀取完成後,在處理檔案內容。如果讀取多個檔案,讀取時間==用時最長的檔案讀取時間,≠每個檔案讀取時間之和

2.事件和回撥函式

事件是指可以被 JavaScript 偵測到的行為,例如onFocus,onMouseOver,upload,onClick類 —— W3CSchool

回撥函式:是最好的接受非同步呼叫返回資料的方式,但不利於編寫同步程式碼的人,因為程式碼的編寫順序和執行順序無關,造成閱讀障礙

3.單執行緒

  • 優勢 1.不用出處在意狀態的同步問題;2.沒有死鎖;3.沒有上下文交換帶來的效能開銷
  • 劣勢 1無法利用多核CPU;2.錯誤會引起整個應用退出,健壯性差;3大量計算佔用CPU導致無法繼續呼叫非同步IO