搜尋
首頁web前端前端問答nodejs誕生於哪一年

nodejs誕生於哪一年

Nov 12, 2021 am 11:49 AM
nodejs

nodejs誕生於2009年5月,是由大神Ryan Dahl開發的一個基於Chrome V8引擎的JavaScript運行環境;它使用了一個事件驅動、非阻塞式I/O模型,讓JavaScript可以運行在服務端的開發平台。

nodejs誕生於哪一年

本教學操作環境:windows7系統、nodejs 12.19.0版,DELL G3電腦。

nodejs誕生於2009年5月,是由大神Ryan Dahl開發的一個基於Chrome V8引擎的JavaScript運行環境。

Ryan 的本職工作是用 C 寫伺服器,後來他總結出一個經驗,一個高效能伺服器應該是滿足「事件驅動,非阻塞 I/O」模型的。 C 開發起來比較麻煩,於是 Ryan 就想找更高階的語言,以便快速開發。可以說有兩點促成了 Nodejs 的誕生。

node的誕生原由和背景

Ryan Dahl的經歷比較奇特他並非科班出身的開發者,在2004年的時候他還在紐約的羅徹斯特大學數學系讀博士,期間有研究一些分形、分類以及p-adic分析,這些都跟開源和程式設計沒啥關係

2006年他有了『世界那麼大,我想去看看’的念頭,做出了退學的決定,開始了一些透過雲的研究來進行他的工作,使用Ruby on Rails 為滑雪板公司開發網站是他的正式編程生涯的開始,(後面的事件發展大家可以自己。。)

直到2008年Chrome 發布,並且同時發布了V8 JavaScript 解釋器。這是一個很棒很厲害的運作環境。 V8 發布後,Ryan Dahl開始對它進行分析,它看起來迷人而且乾淨,而且很快,突然之間Ryan Dahl想到:JavaScript 是單線程的,而且已經實現了非阻塞,但在web 瀏覽器中人們使用AJAX 請求和事件時已經實現了非阻塞請求這有點諷刺 

Ryan Dahl認為JavaScript 結合異步IO,再結合一些HTTP伺服器事件,將會變成一件非常酷的事情所以在接下來的四年裡一直在做這項工作

2009年的2月,按新的想法他提交了專案的第一行程式碼,這個專案的名字最終被定名為「node」

Ryan Dahl在柏林舉行的JSConf EU會議上發表關於Node.js的演講,之後Node.js逐漸流行於世。

於是Ryan Dahl於2010年加入Joyent(矽谷的創業公司),全職負責Node.js專案的開發。此時Node.js專案進入了它生命歷程裡的第二個階段:從個人專案變成一個公司組織下的專案。

他對node的想法是以非阻塞的方式做所有事情這樣的話可以解決編程過程中遇到的很多問題,比如我們可以完全可以不需要關線程處理,只使用過程抽象和序列化通訊就可以完成我們的工作。而且在過程中,完全非同步方式可以處理很多很多的請求這讓他很堅信這個觀點這種方式是很好的(很久之後當Ryan Dahl 遇到了Go 的時候他改變了他原來的想法  因為Go擁有合適的綠色線程和易於使用的抽象,由於Go和操作系統的接口都是綠色線程,也是非阻塞I/O 。但是,他們給用戶的接口是阻塞的,這樣的話對於用戶來說是非常友好  例如處理事件A,等待一個回應或一個錯誤;處理事件B,等待一個回應,出錯很明顯知道要做什麼遇到什麼。但是在Node 中,這就變得更加困難,因為必須跳到另一個函數調用多回調操作,雖然node社群的發展對這種方式的處理做的很好的解決方案,但本質是和Go有區別的)

【推薦學習:《nodejs 教程》】

以上是nodejs誕生於哪一年的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
反應的局限性是什麼?反應的局限性是什麼?May 02, 2025 am 12:26 AM

Include:1)AsteeplearningCurvedUetoItsVasteCosystem,2)SeochallengesWithClient-SiderEndering,3)潛在的PersperformanceissuesInsuesInlArgeApplications,4)ComplexStateStateManagementAsappsgrow和5)TheneedtokeEedtokeEedtokeEppwithitsrapideDrapidevoltolution.thereedtokeEppectortorservolution.thereedthersrapidevolution.ththesefactorsshesssheou

React的學習曲線:新開發人員的挑戰React的學習曲線:新開發人員的挑戰May 02, 2025 am 12:24 AM

reactischallengingforbeginnersduetoitssteplearningcurveandparadigmshifttocoment oparchitecent.1)startwithofficialdocumentationforasolidFoundation.2)了解jsxandhowtoembedjavascriptwithinit.3)

為React中的動態列表生成穩定且獨特的鍵為React中的動態列表生成穩定且獨特的鍵May 02, 2025 am 12:22 AM

ThecorechallengeingeneratingstableanduniquekeysfordynamiclistsinReactisensuringconsistentidentifiersacrossre-rendersforefficientDOMupdates.1)Usenaturalkeyswhenpossible,astheyarereliableifuniqueandstable.2)Generatesynthetickeysbasedonmultipleattribute

JavaScript疲勞:與React及其工具保持最新JavaScript疲勞:與React及其工具保持最新May 02, 2025 am 12:19 AM

javascriptfatigueinrectismanagbaiblewithstrategiesLike just just in-timelearninganning and CuratedInformationsources.1)學習whatyouneedwhenyouneedit

使用USESTATE()掛鉤的測試組件使用USESTATE()掛鉤的測試組件May 02, 2025 am 12:13 AM

tateractComponents通過theusestatehook,使用jestandReaCtTestingLibraryToSigulationsimintionsandIntractions and verifyStateChangesInTheUI.1)underthecomponentAndComponentAndComponentAndConconentAndCheckInitialState.2)模擬useruseruserusertactionslikeclicksorformsorformsormissions.3)

React中的鑰匙:深入研究性能優化技術React中的鑰匙:深入研究性能優化技術May 01, 2025 am 12:25 AM

KeysinreactarecrucialforopTimizingPerformanceByingIneFefitedListupDates.1)useKeyStoIndentifyAndTrackListelements.2)避免使用ArrayIndi​​cesasKeystopreventperformansissues.3)ChooSestableIdentifierslikeIdentifierSlikeItem.idtomaintainAinainCommaintOnconMaintOmentStateAteanDimpperperFermerfermperfermerformperfermerformfermerformfermerformfermerment.ChosestopReventPerformissues.3)

反應中的鍵是什麼?反應中的鍵是什麼?May 01, 2025 am 12:25 AM

ReactKeySareUniqueIdentifiers usedwhenrenderingListstoimprovereConciliation效率。 1)heelPreactrackChangesInListItems,2)使用StableanDuniqueIdentifiersLikeItifiersLikeItemidSisRecumended,3)避免使用ArrayIndi​​cesaskeyindicesaskeystopreventopReventOpReventSissUseSuseSuseWithReRefers和4)

反應中獨特鍵的重要性:避免常見的陷阱反應中獨特鍵的重要性:避免常見的陷阱May 01, 2025 am 12:19 AM

獨特的keysarecrucialinreactforoptimizingRendering和MaintainingComponentStateTegrity.1)useanaturalAlaluniqueIdentifierFromyourDataiFabable.2)ifnonaturalalientedifierexistsistsists,generateauniqueKeyniqueKeyKeyLiquekeyperaliqeyAliqueLiqueAlighatiSaliqueLiberaryLlikikeuuId.3)deversearrayIndi​​ceSaskeyseSecialIndiceSeasseAsialIndiceAseAsialIndiceAsiall

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。