node.js從入門到放棄《什麼是node.js》

來源:互聯網
上載者:User

標籤:例子   image   pre   即時   width   color   驅動   回調   需要   

1.什麼是node.js

Node.js是一個後端的Javascript運行環境(支援的系統包括*nux、Windows),這意味著你可以編寫系統級或者伺服器端的Javascript代碼。

Node.js 使用事件驅動, 非阻塞I/O 模型而得以輕量和高效,非常適合在分布式裝置上運行資料密集型的即時應用。

關於事件驅動的兩個執行個體:在美國去看醫生,需要填寫大量表格,比如保險、個人資訊之類,傳統的基於線程的系統(thread-based system),接待員叫到你,你需要在前台填寫完成這些表格,你站著填單,
而接待員坐著看你填單。你讓接待員沒辦法接待下一個客戶,除非完成你的業務。想讓這個系統能啟動並執行快一些,只有多加幾個接待員,人力成本需要增加不少。基於事件的系統(event-based system)中,當你到視窗發現需要填寫一些額外的表格而不僅僅是掛個號,接待員把表格和筆給你,告訴你可以找個座位填寫,填完了以後再回去找他。
你回去坐著填表,而接待員開始接待下一個客戶。你沒有阻塞接待員的服務。你填完表格,返回隊伍中,等接待員接待完現在的客戶,你把表格遞給他。如果有什麼問題或者需要填寫額外的表格,他給你一份新的,然後重複這個過程。這個系統已經非常高效了,幾乎大部分醫生都是這麼做的。如果等待的人太多,可以加入額外的接待員進行服務,但是肯定要比基於線程模式的少得多。
第二個例子是快餐店點餐。在基於線程的方式中(thread-based way)你到了櫃檯前,把你的點餐單給收銀員或者給收銀員直接點餐,然後等在那直到你要的食物準備好給你。收銀員不能接待下一個人,除非你拿到食物離開。
想接待更多的客戶,容易!加更多的收銀員!當然,我們知道快餐店其實不是這樣工作的。他們其實就是基於事件驅動方式,這樣收銀員更高效。只要你把點餐單給收銀員,某個人已經開始準備你的食物,而同時收銀員在進行收款,當你付完錢,
你就站在一邊而收銀員已經開始接待下一個客戶。在一些餐館,甚至會給你一個號碼,如果你的食物準備好了,就呼叫你的號碼讓你去櫃檯取。關鍵的一點是,你沒有阻塞下一個客戶的訂餐請求。
你訂餐的食物做好的事件會導致某個人做某個動作(某個服務員喊你的訂單號碼,你聽到你的號碼被喊到去取食物),在編程領域,我們稱這個為回調(callback function)。

 

2.在Node上啟動並執行JavaScript相比其他後端開發語言有何優勢?

最大的優勢是藉助JavaScript天生的事件驅動機制加V8高效能引擎,使編寫高效能Web服務輕而易舉。

 

node.js從入門到放棄《什麼是node.js》

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.