本篇內(nèi)容主要講解“Node.js的相關(guān)問題有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Node.js的相關(guān)問題有哪些”吧!
固鎮(zhèn)ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
1. Node誕生于哪一年?
Node誕生2009
年
2009年3月,Node的作者在其博客上宣布準(zhǔn)備基于V8創(chuàng)建一個(gè)輕量級(jí)的Web服務(wù)器并提供一套庫
同年5月,在GitHub發(fā)布最初的版本
2011年7月,在微軟的支持下發(fā)布了windows版本
2. 是誰創(chuàng)造出來的?
Ryan Dahl
是Node的創(chuàng)造者,被稱為Node之父
但在2012年1月,Ryan Dahl將掌門人身份轉(zhuǎn)交給Isaac Z.Schlueter,由他接受Node的版本發(fā)布及bug修復(fù)等工作,Isaac Z.Schlueter也是后來NPM的作者
3. 為什么叫Node?
Node有很多別稱,比如Nodejs、NodeJS、Node.js等,那為什么是Node呢?
起初,Ryan Dahl稱他的項(xiàng)目為web.js,就是一個(gè)web服務(wù)器,但是項(xiàng)目的發(fā)展超出了他最初單純開發(fā)一個(gè)web服務(wù)器的設(shè)想。變成了一個(gè)構(gòu)建網(wǎng)絡(luò)應(yīng)用的基礎(chǔ)框架,可以在它的基礎(chǔ)上構(gòu)建更多的東西,如服務(wù)器、客戶端、命令行工具等等。Node發(fā)展為一個(gè)強(qiáng)制不共享任何資源的單線程、單進(jìn)程系統(tǒng),包含是適宜網(wǎng)絡(luò)的庫,為構(gòu)建大型分布式應(yīng)用程序提供基礎(chǔ)設(shè)施,其目標(biāo)也稱為一個(gè)構(gòu)建快速、可伸縮的網(wǎng)絡(luò)應(yīng)用服務(wù)。它自身非常簡(jiǎn)單,通過通信協(xié)議來組織許多Node,非常容易通過擴(kuò)展來達(dá)成構(gòu)建大型網(wǎng)絡(luò)應(yīng)用的目的。每一個(gè)Node進(jìn)程都構(gòu)成了這個(gè)網(wǎng)絡(luò)應(yīng)用中的一個(gè)節(jié)點(diǎn),這正是Node的含義
4. 為什么是JavaScript成為了Node的實(shí)現(xiàn)語言?
選擇JavaScript作為Node的實(shí)現(xiàn)語言的主要原因有3個(gè):
高性能
符合事件驅(qū)動(dòng)
沒有歷史包袱
Ryan Dahl曾經(jīng)評(píng)估過C、Lua、Haskell、Ruby等作為備選實(shí)現(xiàn),但是C開發(fā)門檻高,Lua有很多的歷史包袱,Haskell又覺得自己還玩不轉(zhuǎn),而Ruby的虛擬機(jī)的性能又不太好。綜合之下選擇了JavaScript作為Node的實(shí)現(xiàn)語言
你可能會(huì)跟我一樣想,JavaScript就沒有歷史包袱嗎?是的,JavaScript在后端一直沒有市場(chǎng),歷史包袱相當(dāng)于零
5. Node有哪些主要特點(diǎn)?
主要有以下特點(diǎn):
異步I/O
事件和回調(diào)函數(shù)
單線程
Node保留了前端瀏覽器JavaScript中的那些熟悉的接口,沒有改寫語言本身的任何特性
6. Node有哪些應(yīng)用場(chǎng)景?
Node的應(yīng)用場(chǎng)景主要有以下幾種:
CPU密集型
CPU密集型業(yè)務(wù)
分布式應(yīng)用
Node利用事件循環(huán)的處理能力,不需要為每一個(gè)請(qǐng)求啟動(dòng)一個(gè)線程,從而更有效的組織起更多的硬件資源;對(duì)于偏重CPU棧操作的業(yè)務(wù),Node的表現(xiàn)也是足夠高效的,主要原因是V8的深度性能優(yōu)化
7. CPU密集型應(yīng)用會(huì)給Node帶來什么挑戰(zhàn),如何解決?
CPU密集型應(yīng)用會(huì)給Node帶來的主要挑戰(zhàn)是:由于JavaScript單線程,如果長時(shí)間計(jì)算(如大的循環(huán)),將會(huì)導(dǎo)致CPU時(shí)間片不能釋放,使得后續(xù)I/O無法發(fā)起
通常方案:
適當(dāng)調(diào)整和分解大型運(yùn)算任務(wù)
如果上述方案無法解決,Node還有兩種方法來充分利用CPU
Node可以編寫C/C++擴(kuò)展
通過子進(jìn)程的方式,將一部分Node進(jìn)程當(dāng)做常駐服務(wù)進(jìn)程用于計(jì)算,然后利用進(jìn)程間的消息來傳遞結(jié)果,將計(jì)算與I/O分離
到此,相信大家對(duì)“Node.js的相關(guān)問題有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
本文標(biāo)題:Node.js的相關(guān)問題有哪些
本文路徑:http://www.chinadenli.net/article40/gcijeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、Google、定制網(wǎng)站、網(wǎng)站維護(hù)、定制開發(fā)、網(wǎng)頁設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)