1. 程式人生 > >1.3 node.js的哲學

1.3 node.js的哲學

node.js是一個專注於實現高效能web伺服器優化的專家,他的哲學理念是與其一堆服務員閒著,不如讓一個服務員累死,這與他底層是chrom V8引擎密不可分,採用了事件驅動,非阻塞I/O模型。

同步I/o: 當系統遇到遇到一個需要耗費大量時間去做的事情時候,選擇等死

非同步I/o:當系統遇到遇到一個需要耗費大量時間去做的事情時候,不等死,先做後面的事,等耗時的事情昨完之後,執行回撥函式,

我們來看一個小案例:

我們可以看到,當遇到相對於其他檔案比較耗時的時候(讀取text.txt檔案),系統會執行後面的的事(計算),然後輸出計算的值,等耗時的時做完之後,執行回撥函式來輸出耗時做的事(text.txt檔案),

這裡需要注意的是data.toString:

JavaScript 語言自身只有字串資料型別,沒有二進位制資料型別。

但在處理像TCP流或檔案流時,必須使用到二進位制資料。因此在 Node.js中,定義了一個 Buffer 類,該類用來建立一個專門存放二進位制資料的快取區。

然後 通過使用顯式的字元編碼,就可以在 Buffer 例項與普通的 JavaScript 字串之間進行相互轉換。