標籤:io 使用 java sp 檔案 資料 問題 代碼 bs
Node.js 是一個基於Chrome JavaScript 運行時建立的一個平台, 用來方便地搭建快速的 易於擴充的網路應用· Node.js 藉助事件驅動, 非阻塞I/O 模型變得輕量和高效, 非常適合 運行在分布式裝置 的 資料密集型 的即時應用
Node.js是一個可以快速構建網路服務及應用的平台[2] 。該平台的構建是基於Chrome‘s JavaScript runtime,也就是說,實際上它是對Google V8引擎(應用於Google Chrome瀏覽器)進行了封裝。 V8引擎執行Javascript的速度非常快,效能非常好。Node對一些特殊用例進行了最佳化,提供了替代的API,使得V8在非瀏覽器環境下運行得更好。[3] 例如,在伺服器環境中,處理位元據通常是必不可少的,但Javascript對此支援不足,因此,V8.Node增加了Buffer類,方便並且高效地處理位元據。因此,Node不僅僅簡單地使用了V8,還對其進行了最佳化,使其在各環境下更加給力。
node.js的特點有哪些 1:非同步IO 非同步相對應的就是不同步,使用非同步可以更高的分配資源 在node中絕大多數操作都是非同步方式進行調用,node團隊排除萬難在底層構建了很多非同步io的API,從檔案讀取到網路請求等,這樣的意義在於,在node中我們可以從語言層面很自然的進行並行的io操作,每個調用之間不用多餘等待 例如讀取兩個檔案,採用同步的方式會是(操作1+操作2)總時間 而非同步則是max(操作1+操作2) 2:事件與回呼函數 node選擇的是javascript,javascript不僅在前段擔任更多職責,在後端同樣擔任職責,它將前段瀏覽器中應用廣泛而且成熟的時間引入到了後端,配合非同步io將時間點暴露給了商務邏輯 案例:node可以在後端建立一個伺服器,處理使用者發送的請求 相比之下,無論前段還是後端,事件都是常用的 事件的編程方式是輕量級松耦合之關注時間點的,但是在多個異場步任務的情境下,時間之間的相互獨立,如何合作將會是一個問題
node中的事件回調是node 的一大特色,他解決了這個問題,回呼函數是最好的接受非同步呼叫返回資料的方式,(很多老程式員接受不了這一點),代碼的編寫順序與執行順序並無太大的關係(這也導致了在流程式控制制方面,不是很好的閱讀,所以還是建議盡量寫正常代碼) 3:單線程處理方式 node保持了javascript在瀏覽器中單線程的特點,在node中無法享受任何狀態,所以不用擔心同步問題 但是無法避免的他也有自己的缺點 無法利用多核cpu 產生錯誤將全體退出程式 4:跨平台 在各個平台下都可以使用
為什麼選擇 javaScript javaScript誕生以來位置一直很尷尬,之前基本上沒人把它當作一個程式設計語言(沒有很多程式員會為了js花費太多的心思來學習)只是把它當作一個網頁小指令碼,更多的應用情境在於資料驗證(其實這才是最早發布js的用處),但是隨著web2.0時代的到來,js已經在網頁中發揮出來更多的特色,例如讓你的網頁更加有動畫感 在web2.0時代更多的前段架構被開發人員開發出來,最初只是為瞭解決瀏覽器之間不相容性問題,例如jquery,但是隨著更多的使用者需求在前斷出現,js從前段應用出現在了開發應用層級上面, 工具(瀏覽器安全色性)——組件(功能模組)——架構(功能模組組織)——應用(應用模組組織)
Node.js