初學Node.js

每接觸一門新的知識,心裏都有些許忐忑,總擔憂學很差,因此都認真聽老師講,可是即便那樣當心翼翼,在一階段知識學完後,總以爲學的不夠活,並且用着用着都不知道這究竟是用來幹嗎的了。究其根源,仍是知識沒有學活,沒有認真思考和運用。javascript

雖然在用着說着Node.js,名字是挺洋氣的,可是究竟是什麼呢?查了查資料,瞭解到,其實它是一個服務器程序,基於javascript的解釋器。javacript最初是運行在瀏覽器上,它可使用在不一樣的上下文中,而Node.js其實就是js的另一種上下文,它能夠在後臺運行js代碼,就是服務器端的js。Node自己運行V8 javascript,V8 javascript引擎是谷歌用於其Chrome瀏覽器的底層JavaScript引擎。在客戶端,JavaScript引擎負責解釋並執行代碼,谷歌建立了一個用C++編寫的超快解釋器,該解釋器擁有另外一個獨特特徵;能夠下載該引擎並將其嵌入任何 應用程序。V8 JavaScript 引擎並不只限於在一個瀏覽器中運行。所以,Node 實際上會使用 Google 編寫的 V8 JavaScript 引擎,並將其重建爲可在服務器上使用。html

同時,基礎 Node 產品確定不 像 Apache 或 Tomcat。(apache:側重於http server ;tomcat:側重於servlet引擎,若是以standalone方式運行,功能上與apache等效,支持JSP,但對靜態網頁不太理想;apache是web服務器,tomcat是應用(java)服務器,它只是一個servlet(jsp也翻譯成servlet)容器,能夠認爲是apache的擴展,可是能夠獨立於apache運行。換句話說,apache是一輛卡車,上面能夠裝一些東西如html等。可是不能裝水,要裝水必需要有容器(桶),而這個桶也能夠不放在卡車上。)本質上,那些服務器 「安裝就緒型」 服 務器產品,支持當即部署應用程序。經過這些產品,您能夠在一分鐘內啓動並運行一個服務器。Node 確定不是這種產品。Apache 能經過添加一個 PHP 模塊來容許開發人員建立動態 Web 頁,添加一個 SSL 模塊來實現安全鏈接,與此相似,Node 也有模塊概念,容許向 Node 內核添加模塊。實際上,可供選擇的用於 Node 的模塊有數百個之多,社區在建立、發佈和更新模塊方面很是活躍,一天甚至能夠處理數十個模塊。java

主要好處:在Java和PHP這類語言中,每一個鏈接都會生成一個新線程(一個進程可包含多個線程),每一個新線程可能須要 2 MB 的配套內存。在一個擁有 8 GB RAM 的系統上,理論上最大的併發鏈接數量是 4,000 個用戶。隨着您的客戶羣的增加,若是但願您的 Web 應用程序支持更多用戶,那麼,您必須添加更多服務器。Node 解決這個問題的方法是:更改鏈接到服務器的方式。每一個鏈接發射一個在 Node 引擎的進程中運行的事件,而不是爲每一個鏈接生成一個新的 OS 線程(併爲其分配一些配套內存)。Node 聲稱它毫不會死鎖,由於它根本不容許使用鎖,它不會直接阻塞 I/O 調用。Node 還宣稱,運行它的服務器能支持數萬個併發鏈接。web

基於事件驅動的回調函數,這樣作能夠實現Node並行處理事件的功能,回調函數是當有事件發生時執行,異步執行,因此並行執行方便。apache

函數可做爲參數進行傳遞。瀏覽器

相關文章
相關標籤/搜索