Node.js學習筆記(1) - Node.js簡介

來源:互聯網
上載者:User

近期在看一些Node.js的知識,看完後覺得,一些前面的東西忘記了,於是整理一下,方便自己查閱,也希望對學習Node.js的朋友有些協助; 當然以下只是我個人的觀點和理解,不喜勿噴,也望大神指教。 一、Node.js是什麼 關於這個問題,剛看到它的時候,可能覺得和javascript有關係,沒錯,確實有關係;但是,首先Node.js不是一門語言,與php python perl ruby的 “既是語言又是平台”不同;Node.js也不是一個javascript架構或者javascript類庫,不同於Jquery ExtJS;Node.js是一個可以讓javascript運行在 伺服器端的平台; 二、Node.js特點 Node.js具有以下特點: ①是一個javascript運行環境或者平台 ②依賴於Chrome V8引擎進行代碼解釋 ③基於事件驅動 ④非同步式I/O(非阻塞I/O) ⑤單進程、單線程 ⑥輕量、可伸縮,適用於即時資料互動應用 通過以上的特點,我們可以總結一句話: Node.js是用非同步式I/O和事件驅動,依賴於Chrome的V8引擎進行代碼解釋的javascript運行環境; Node.js最大的特點就是非同步式I/O和事件驅動,對於高並發的解決方案,Node.js摒棄了傳統的多執行緒模式, 使用的是單執行緒模式,對所有的I/O請求都採用非同步式請求的方式;   這裡簡單介紹下,非同步式I/O和事件驅動: 非同步式I/O,又叫非阻塞I/O, 在阻塞狀態下,當線程遇到I/O操作時,會等待I/O操作的完成,從而造成阻塞,而一個線程只能處理一項任務,要想提供輸送量必須通過多線程; 而非阻塞狀態下,不會等待I/O操作的結果返回,繼續執行下一條語句,當結果返回時,I/O以事件的方式通知;   Node.js的非同步式I/O由回呼函數完成,事件的回呼函數在遇到I/O請求並且當I/O操作完成時,會發送一個事件 到事件隊列,而Node.js的事件迴圈機制會檢查隊列中有沒有未處理的事件,直到程式結束,所以可以說, Node.js程式由事件迴圈開始,到事件迴圈結束。 三、Node.js的用途 Node.js適合應用在高並發、I/O密集、少量商務邏輯的情境 不適合的情境: 1.計算密集型應用 2.單使用者多任務的程式 3.邏輯十分複雜的事務 4.unicode與國際化

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.