掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
本文轉(zhuǎn)載自微信公眾號「JS每日一題」,作者灰灰。轉(zhuǎn)載本文請聯(lián)系JS每日一題公眾號。

創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)公司一直秉承“誠信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!專注中小微企業(yè)官網(wǎng)定制,成都做網(wǎng)站、網(wǎng)站建設(shè),塑造企業(yè)網(wǎng)絡(luò)形象打造互聯(lián)網(wǎng)企業(yè)效應(yīng)。
Node.js 是一個開源與跨平臺的 JavaScript 運(yùn)行時環(huán)境
在瀏覽器外運(yùn)行 V8 JavaScript 引擎(Google Chrome 的內(nèi)核),利用事件驅(qū)動、非阻塞和異步輸入輸出模型等技術(shù)提高性能
可以理解為 Node.js 就是一個服務(wù)器端的、非阻塞式I/O的、事件驅(qū)動的JavaScript運(yùn)行環(huán)境
Nodejs采用了非阻塞型I/O機(jī)制,在做I/O操作的時候不會造成任何的阻塞,當(dāng)完成之后,以時間的形式通知執(zhí)行操作
例如在執(zhí)行了訪問數(shù)據(jù)庫的代碼之后,將立即轉(zhuǎn)而執(zhí)行其后面的代碼,把數(shù)據(jù)庫返回結(jié)果的處理代碼放在回調(diào)函數(shù)中,從而提高了程序的執(zhí)行效率
事件驅(qū)動就是當(dāng)進(jìn)來一個新的請求的時,請求將會被壓入一個事件隊(duì)列中,然后通過一個循環(huán)來檢測隊(duì)列中的事件狀態(tài)變化,如果檢測到有狀態(tài)變化的事件,那么就執(zhí)行該事件對應(yīng)的處理代碼,一般都是回調(diào)函數(shù)
比如讀取一個文件,文件讀取完畢后,就會觸發(fā)對應(yīng)的狀態(tài),然后通過對應(yīng)的回調(diào)函數(shù)來進(jìn)行處理
優(yōu)點(diǎn):
因?yàn)镹odejs是單線程,帶來的缺點(diǎn)有:
借助Nodejs的特點(diǎn)和弊端,其應(yīng)用場景分類如下:
具體場景可以表現(xiàn)為如下:
其實(shí),Nodejs能實(shí)現(xiàn)幾乎一切的應(yīng)用,只考慮適不適合使用它
參考文獻(xiàn)
http://nodejs.cn/
https://segmentfault.com/a/1190000019854308
https://segmentfault.com/a/1190000005173218

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流