Node.js的特點(diǎn)詳解
Node.js是一個基于Chrome v8引擎建立的Java運(yùn)行平臺,用于搭建響應(yīng)速度快、易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。本文和大家分享的是Node.js的一些特點(diǎn),希望對大家學(xué)習(xí)Node.js有幫助。
異步I/O
這里,我們來詳細(xì)解釋一下:
異步是什么意思
比如說你的爸,今天要叫你做些事情,比如說你要做飯、洗衣服還有掃地,以及燒開水等等一系列的事情。那么,就你一個人來說,你是不是得一件事一件事的挨個做完了之后,才能接著做下一件事。比如說,你是不是燒完開水,然后才來掃地,掃完地然后再來煮飯,煮完飯,你可能才會做其他事情。那么這個過程,我們把它叫做同步的過程。你做一件事,你必須要等待,等待做完了之后,再做另外一件事。那么這個時候,如果我們懂得合理安排時間的話,我們可以這樣辦:我們在燒開水的時候,我們可以掃地,因?yàn)闊_水不用我們守著嘛!只需要把水放好,或點(diǎn)燃就行了。然后,我們可以去做其他事情了。比如說,掃地,或者是洗衣服,等等一系列的事情我們都可以做。那么這樣,在做完了同樣的事情,但是我們所需要花費(fèi)的時間,它是不一樣的。你用后面這種方式,可能用的時間會更短,效率更高。而你用前面那種同步的方式,它的效率會更低。那么,后面這種事情,我們就把它叫做異步的操作。
事件與回調(diào)
如果你采用異步的方式來做事情,它的效率會很高,但是你同時只能做一個事情。比如說,你燒開水的時候,雖然說不用你守在那里。但是你掃地了過后,你這個水燒開的時候,我怎么知道呢?(就是這件事做好了之后,我怎么知道呢?)
于是我們可以想一下,在這個水壺上面,給它放一個小喇叭,當(dāng)這個水燒開了之后會冒蒸汽,當(dāng)這個蒸汽吹響這個喇叭的時候,我們就知道這個事情做好了,水燒開了,我們就可以接著做水燒開之后的事情了。
這個事件與回調(diào)就是:這個水燒開了以后,它會以事件的形式來通知你(我這個事情做好了,你可以把這個水裝好了)。
回調(diào)是什么意思
當(dāng)它的事件發(fā)生了過后,它會通知你,那么你在裝水這個過程,就是在回調(diào)(就是處理這個過程)。處理完燒開水過后的結(jié)果
單線程
這一點(diǎn)是node.js比較大的一個特點(diǎn)。它可以開發(fā)出高效的后臺應(yīng)用(網(wǎng)絡(luò)應(yīng)用)
什么是單線程
還是用剛才那個例子。你爸叫你做很多件事情,如果你不懂的合理安排時間,你就只能用同步;那么同步的時候,你可能會這樣想:我叫我?guī)讉€小伙伴來幫我做這個事情(叫個兩三個小伙伴)。一個幫我燒開水,一個幫我掃地,一個幫我煮飯。這樣操作的話,在同一個時間段,就有多個人來幫你做事情。(這種操作,我們把它叫做多線程操作,就是同一時間段,有多個人來做事情)
多線程操作它有個缺點(diǎn),就是你請這些小伙伴來幫你做事情,肯定要犒勞一下他們,那么你勢必會花費(fèi)一下你的零用錢,你肯定要買點(diǎn)好吃的東西來犒勞一下。那么這樣,如果你不想花你的錢,但是你又想把事情做好,那么你怎么辦呢?只能按照剛才我們異步的方式,就是你一個人做。又要提高效率怎么辦呢?就是我做這件事情的時候,同時又要做其它事情,那么這個就是單線程(就是一個人做事情)。
跨平臺
目前我們的node.js在mac系統(tǒng)上、Windows上面和Linux這些上面,都可以運(yùn)行,它已經(jīng)開發(fā)除了對應(yīng)的運(yùn)行環(huán)境了。
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時也希望多多支持腳本之家!
- Node.js的特點(diǎn)和應(yīng)用場景介紹
- 簡單實(shí)現(xiàn)node.js圖片上傳
- node.js請求HTTPS報(bào)錯:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解決方法
- 詳解Node.js:events事件模塊
- node.js版本管理工具n無效的原理和解決方法
- 使用Node.js給圖片加水印的方法
- Node.js中路徑處理模塊path詳解
- Node.js開啟Https的實(shí)踐詳解
- 深入理解Node.js 事件循環(huán)和回調(diào)函數(shù)
- NODE.JS跨域問題的完美解決方案
- Node.js包管理器Yarn的入門介紹與安裝
- Node.js的環(huán)境安裝配置(使用nvm方式)
相關(guān)文章
Node.js API詳解之 module模塊用法實(shí)例分析
這篇文章主要介紹了Node.js API詳解之 module模塊用法,結(jié)合實(shí)例形式分析了Node.js API中module模塊基本功能、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-05-05Node.js中的process.nextTick使用實(shí)例
這篇文章主要介紹了Node.js中的process.nextTick使用實(shí)例,nextTick函數(shù)有什么用、怎么用、和setTimeout有什么區(qū)別呢,本文就講解了這些知識,需要的朋友可以參考下2015-06-06node.js中的http.request.end方法使用說明
這篇文章主要介紹了node.js中的http.request.end方法使用說明,本文介紹了http.request.end的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12詳解基于node的前端項(xiàng)目編譯時內(nèi)存溢出問題
本篇文章主要介紹了基于node的前端項(xiàng)目編譯時內(nèi)存溢出問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08node.js安裝及環(huán)境配置超詳細(xì)步驟講解(Windows系統(tǒng)安裝包方式)
這篇文章主要介紹了node.js安裝及環(huán)境配置超詳細(xì)教程(Windows系統(tǒng)安裝包方式),本文分步驟通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02Node 創(chuàng)建第一個服務(wù)器應(yīng)用的操作方法
Node.js是一個基于Chrome V8引擎的JavaScript運(yùn)行環(huán)境,可以用于構(gòu)建高性能的網(wǎng)絡(luò)應(yīng)用程序,它采用事件驅(qū)動、非阻塞I/O模型,使得程序可以以高效地方式處理并發(fā)請求,這篇文章主要介紹了Node 創(chuàng)建第一個服務(wù)器應(yīng)用,需要的朋友可以參考下2024-02-02