前端簡史:關於前端開發那點事

前端技術的發展可謂是日新月異,短短不過十幾年已經從野蠻生長走向了技術化和現代化,甚至引領了IT界的潮流。同時,隨著前端開發技術不斷普及,代碼量也在飛速增長,伴隨這一變化的是相對應的構建工具的快速成長。

看似僅有短短几年曆史的前端開發,其實技術起源相當深遠。時間可以從1990年的網頁瀏覽器誕生算起。自1990年英國科學家TimothyJohn Berners-Lee 第一次用互聯網瀏覽器訪問網頁至今已經有28年的歷史了。

今天小渡就帶你一起總結一下,前端發展誕生過程中的那些重要節點。

01

從無到有

1989年,在歐洲粒子物理實驗室的IT部門工作的TimBerners-Lee向其領導提出了一項名為InformationManagement: AProposal的提議:使來自世界各地的遠程站點的研究人員能夠組織和彙集信息,在個人計算機上訪問大量的科研文獻,並建議在文檔中鏈接其他文檔,這就是Web的原型。

隨著Tim推廣,美國國家超算應用中心開發了名為Mosaic的瀏覽器,並於1993年4月發佈;第二年第一屆萬維網大會在日內瓦召開,同年7月,Html2.0規範發佈,11月網景成立併發布第一代瀏覽器,改名為Navigator。1994年底,W3C成立。此時,進入靜態網頁時代。也就是web1.0時代。

02

開始崛起

1995年網景工程師BrendanEich 花了10天時間設計了JavaScript語言。與此相對的是,1996年,微軟發佈了VBScript和JScript。

js的誕生,可以說是開啟了動態網頁的時代,為了使得Web更加充滿活力,以PHP、JSP、ASP.NET為代表的動態頁面技術相繼誕生。

直到Google分別在2004年和2005年先後發佈了兩款重量級的Web產品:Gmail和GoogleMap。這兩款Web產品都大量使用了AJAX技術,不需要刷新頁面就可以使得前端與服務器進行網絡通信,顛覆了用戶體驗,這也體現了Ajax的最大的特性就是局部刷新。Ajax的流行,是我們進入了Web2.0時代,也就是客戶端更方便的向服務端發送信息。

03

全面爆發

然而,隨著瀏覽器大戰的愈演愈烈,不同的瀏覽器執行不同的標準,對於開發人員來說這是一個惡夢。為了解決這個問題,眾多兼容性js框架誕生,JQ在眾多同類中脫穎而出,獨領風騷,幾乎成了業界的標配。

但是隨著Web應用的增多,舊的標準難以滿足需求,在2008年1月22日,H5草案發布。在2010年4月,喬布斯發表一篇題為“對Flash的思考”的文章,指出隨著HTML5的發展,觀看視頻或其它內容時,AdobeFlash 將不再是必須的,同時H5的WebWorker可以讓JavaScript運行在多線程中,WebSocket可以實現前端與後臺的雙工通信,WebGL可以創建Web3D網頁遊戲……

2009年,Ryan利用Chrome的V8引擎打造了基於事件循環的異步I/O框架—— Node.js誕生。Node的出現使前端的職能進一步擴大,前端正式進入服務端。由於語言的特性,我們很難用一種語言去實現前後端的開發。Node的出現,擴展了js語言的特性,它更重要的是構建了一個龐大的生態體系。使得js大有一統天下之勢。

2010年1月,NPM作為Node.js的包管理系統首次發佈。我們可以按照CommonJS的規範編寫Node.js模塊,然後將其發佈到NPM上面供其他開發人員使用。Npm是世界上最大的包模塊管理系統。關於Node的框架有很多,有Express、koa、Sails、egg。

談到了模塊化,就不得不明確目前模塊化方案帶來的優勢

模塊的定義:

這裡我們可以理解成實現特定功能的相互獨立的一組方法

為什麼要使用模塊化:

具有可維護性、命名空間以及可複用性

模塊化規範:

CommonJS

CommonJS擴展了JavaScript聲明模塊的API,通過CommonJS,每個JS文件獨立地存儲它模塊的內容(就像一個被括起來的閉包一樣)。在這種作用域中,我們通過module.exports語句來導出對象為模塊,再通過require語句來引入,如:

AMD

提倡依賴前置,在定義模塊的時候就要聲明其依賴的模塊,如:

CMD

CMD規範是國內SeaJS的推廣過程中產生的提倡就近依賴(按需加載),在用到某個模塊的時候再去require,如:

UMD

AMD和CommonJS的結合,跨平臺的解決方案,UMD先判斷是否支持Node.js的模塊(exports)是否存在,存在則使用Node.js模塊模式。在判斷是否支持AMD(define是否存在),存在則使用AMD方式加載模塊,如:

Module(es6)

原生JS(es6)解決方案,如:

04

寫在最後

前端是一個年輕而充滿潛力的領域。

早期的前端開發受制於場景和環境,功能相對單一,但隨著互聯網的發展,前端變得越來越重要且複雜。以前後端開發工程師就可以搞定的畫面,現在需要一兩個甚至幾十個前端工程師協同才能完成。

模塊化也成為工程師們協同的基礎,想要學好前端開發?那麼就把這篇前端的前世今生收藏分享給更多的人吧!

十五年編程經驗,整理了一批2019年最新WEB前端教學視頻,幫助所有想要學好前端的同學,不論是學習規劃、學習路線、學習資料、問題解答。只要關注我的頭條號,私信我【前端】兩個字,就可以解決所有學習問題了。