前端發(fā)展史

原文轉(zhuǎn)自https://www.cnblogs.com/kidney/p/6079530.html

從靜態(tài)走向動(dòng)態(tài)

1994年可以看做前端歷史的起點(diǎn),

這一年10月13日網(wǎng)景推出了第一版Navigator吗讶;

這一年酌摇,Tim Berners-Lee創(chuàng)建了W3C;

這一年小槐,Tim的基友發(fā)布了CSS他挎。

還是這一年,為動(dòng)態(tài)web網(wǎng)頁(yè)設(shè)計(jì)的服務(wù)端腳本PHP以及筆者本人誕生丙唧。

萬(wàn)維網(wǎng)(WWW)是歐洲核子研究組織的一幫科學(xué)家為了方便看文檔、傳論文而創(chuàng)造的觅玻,這就是為什么Web網(wǎng)頁(yè)都基于Document想际。Document就是用標(biāo)記語(yǔ)言+超鏈接寫成的由文字和圖片構(gòu)成的HTML頁(yè)面,這樣的功能已經(jīng)完全滿足學(xué)術(shù)交流的需要溪厘,所以網(wǎng)頁(yè)的早期形態(tài)和Document一樣胡本,完全基于HTML頁(yè)面,并且所有內(nèi)容都是靜態(tài)的畸悬。

隨著網(wǎng)頁(yè)從學(xué)術(shù)機(jī)構(gòu)走向公眾社會(huì)侧甫,網(wǎng)頁(yè)承載的功能便超出了學(xué)術(shù)范圍而變得愈加豐富,因此早期網(wǎng)頁(yè)的局限性也逐漸顯露出來(lái)蹋宦。

第一披粟,所有的網(wǎng)頁(yè)都基于HTML頁(yè)面,因?yàn)闆](méi)有任何手段可以控制局部?jī)?nèi)容的顯示和隱藏冷冗,因此任何局部的變化哪怕只多出一個(gè)標(biāo)點(diǎn)符號(hào)守屉,都只能重新下載一個(gè)新的頁(yè)面。

第二贾惦,計(jì)算任務(wù)只能在服務(wù)端實(shí)現(xiàn)胸梆。由于網(wǎng)速限制,與服務(wù)器通信的過(guò)程是非常緩慢的须板,并且此過(guò)程是同步阻塞的碰镜,于是會(huì)出現(xiàn)這樣的場(chǎng)景:用戶提交一個(gè)表單,然后整個(gè)頁(yè)面消失习瑰,瀏覽器呈現(xiàn)白屏绪颖,經(jīng)過(guò)漫長(zhǎng)的等待,瀏覽器渲染出一個(gè)和之前一模一樣的頁(yè)面,只不過(guò)輸入框旁邊多了一排紅色小字:用戶名錯(cuò)誤柠横。

第三窃款,所有頁(yè)面都是靜態(tài)的,這意味著一個(gè)電商網(wǎng)站有一千種商品牍氛,哪怕頁(yè)面布局一模一樣晨继,也必須寫一千個(gè)單獨(dú)的頁(yè)面。

早期網(wǎng)頁(yè)形態(tài)低下的效率是無(wú)法僅僅通過(guò)提高網(wǎng)速解決的搬俊。

1994年一個(gè)叫Rasmus Lerdorf的加拿大人為了維護(hù)個(gè)人網(wǎng)站而創(chuàng)建了PHP紊扬。PHP原意是Personal Home Page,宣傳語(yǔ)是Hypertext Preprocessor(超文本處理者)唉擂。PHP實(shí)現(xiàn)了與數(shù)據(jù)庫(kù)的交互以及用于生產(chǎn)動(dòng)態(tài)頁(yè)面的模板引擎餐屎,是Web領(lǐng)域中最主流的服務(wù)端語(yǔ)言。

1995年網(wǎng)景推出了JavaScript玩祟,實(shí)現(xiàn)了客戶端的計(jì)算任務(wù)(如表單驗(yàn)證)。

1996年微軟推出了iframe標(biāo)簽空扎,實(shí)現(xiàn)了異步的局部加載。

1999年W3C發(fā)布第四代HTML標(biāo)準(zhǔn)伙判,同年微軟推出用于異步數(shù)據(jù)傳輸?shù)腁ctiveX象对,隨即各大瀏覽器廠商模仿實(shí)現(xiàn)了XMLHttpRequest黑忱。這標(biāo)識(shí)著Ajax的誕生,但是Ajax這個(gè)詞是在六年后問(wèn)世的甫煞,特別是在谷歌使用Ajax技術(shù)打造了Gmail和谷歌地圖之后冠绢,Ajax獲得了巨大的關(guān)注抚吠。Ajax是Web網(wǎng)頁(yè)邁向Web應(yīng)用的關(guān)鍵技術(shù),它標(biāo)識(shí)著Web2.0時(shí)代的到來(lái)弟胀。

2006年楷力,XMLHttpRequest被W3C正式納入標(biāo)準(zhǔn)孵户。

至此,早期的Document終于進(jìn)化為了Web page夏哭,上述三個(gè)局限都得到了妥善的解決。

從后端走向前端

早期的網(wǎng)頁(yè)開(kāi)發(fā)是由后端主導(dǎo)的何址,前端能做的也就是操作一下DOM。2006年 John Resig發(fā)布了jQuery用爪,jQuery主要用于操作DOM,其優(yōu)雅的語(yǔ)法班眯、符合直覺(jué)的事件驅(qū)動(dòng)型的編程思維使其極易上手烁巫,因此很快風(fēng)靡全球,大量基于jQuery的插件構(gòu)成了一個(gè)龐大的生態(tài)系統(tǒng)磁餐,更加穩(wěn)固了jQuery作為JS庫(kù)一哥的地位阿弃。

jQuery最早的版本在這里:

http://genius.it/ejohn.org/files/jquery-original.html

起初制約Web開(kāi)發(fā)從后到前的因素很簡(jiǎn)單,就是前端很多事干不了或干不好渣淳,當(dāng)時(shí)的瀏覽器性能弱,標(biāo)準(zhǔn)化程度低鄙漏。特別是占據(jù)大量市場(chǎng)份額的IE棺蛛,不僅ugly怔蚌,并且buggy。

于2008年問(wèn)世的谷歌V8引擎改變了這一局面¤胗唬現(xiàn)代瀏覽器的崛起終結(jié)了微軟的壟斷時(shí)代终畅,前端的計(jì)算能力一下子變得過(guò)剩了。標(biāo)準(zhǔn)組織也非常配合的在2009年發(fā)布了第五代JavaScript杖狼,前端的裝備得到了整體性的提高术徊,前端界如同改革開(kāi)放走進(jìn)了一個(gè)令人目不暇接的新時(shí)代。

2009年AngularJS誕生子寓,隨后被谷歌收購(gòu)。2010年backbone.js誕生斜友。2011年React和Ember誕生。2014年Vue.js誕生……前后端分離可謂大勢(shì)所趨烹看。

后端只負(fù)責(zé)數(shù)據(jù)洛史,前端負(fù)責(zé)其余工作,這種分工模式一定是更清晰也更高效的土思。隨著基礎(chǔ)設(shè)置的不斷完善以及代碼封裝層級(jí)的不斷提高忆嗜,使得前端一個(gè)人能夠完成的事越來(lái)越多,這是技術(shù)積累的必然結(jié)果闪湾。就好像今天高中生的知識(shí)水平绩卤,可能遠(yuǎn)遠(yuǎn)超過(guò)五百年前的科學(xué)家,今天要成為Web全棧工程師娘纷,門檻也只會(huì)越來(lái)越低跋炕。

2014年律适,第五代HTML標(biāo)準(zhǔn)發(fā)布。H5是由瀏覽器廠商主導(dǎo)纠修,與W3C合作制定的一整套Web應(yīng)用規(guī)范厂僧,至今仍在不斷補(bǔ)充新的草案。我們可以清晰的感受到這一系列規(guī)范背后隱含的領(lǐng)導(dǎo)者的勃勃雄心:占領(lǐng)所有屏幕辰妙。

從前端走向全端

2009年Ryan Dahl發(fā)布了node,node是一個(gè)基于V8引擎的服務(wù)端JavaScript運(yùn)行環(huán)境密浑,類似于一個(gè)虛擬機(jī)尔破,也就是說(shuō)js在服務(wù)端語(yǔ)言中有了一席之地。如果說(shuō)ajax是前端的第一次飛躍懒构,那么node可算作前端的第二次飛躍。它意味著JavaScript走出了瀏覽器的藩籬颤介,邁出了全端化的第一步赞赖。

一種流行的組合就是利用Express和Mongo搭建服務(wù)端程序。

Web開(kāi)疆拓土的步伐并不止于此辕近。

2007年第一代iphone發(fā)布匿垄,2008年第一臺(tái)安卓手機(jī)發(fā)布椿疗。悄然間互聯(lián)網(wǎng)進(jìn)入了移動(dòng)時(shí)代。移動(dòng)端的發(fā)展進(jìn)程和PC的歷史如出一轍届榄,一開(kāi)始都是Native App的天下。但瀏覽器試圖取代操作系統(tǒng)的篡位之心從未消減靖苇。相比原生應(yīng)用班缰,Web APP有太多好處:無(wú)須開(kāi)發(fā)兩套系統(tǒng)版本、無(wú)須安裝脾拆、無(wú)須手動(dòng)升級(jí)、無(wú)須審核……我認(rèn)為最大的好處以及驅(qū)動(dòng)軟件形態(tài)轉(zhuǎn)向的主要原因在于降低成本绰上,記得13年的時(shí)候韓寒說(shuō)做一個(gè)APP大概需要五十萬(wàn)包帚,今天網(wǎng)上比較靠譜的分析評(píng)估半年時(shí)間從零做出一個(gè)稍微像樣的APP至少100萬(wàn),而開(kāi)發(fā)Web App花的錢一定少得多渴邦。

制約Web App的因素有很多谋梭,但我們可以看到Web App一直在不斷修復(fù)缺陷、突破局限瓮床。你說(shuō)網(wǎng)頁(yè)有tab bar隘庄,好吧,給你個(gè)fullpage API丑掺,你說(shuō)網(wǎng)頁(yè)不能調(diào)取系統(tǒng)功能街州,好吧,Geolocation API唆缴、Vibration API、Luminosity API艳丛、Orientation API斗忌、Camera API……你說(shuō)網(wǎng)頁(yè)不像APP有圖標(biāo),IOS早就支持在桌面上添加網(wǎng)頁(yè)鏈接的快捷圖標(biāo),還得是喬幫主遠(yuǎn)見(jiàn)砰粹;你說(shuō)網(wǎng)頁(yè)必須聯(lián)網(wǎng),現(xiàn)在離線的方案也很多芭浴;你說(shuō)Web App性能差谐丢,這個(gè)……你說(shuō)得對(duì)蚓让,也就是這個(gè)原因,Native App還能作為主流存在一段時(shí)間窄瘟,可是如果Web App的性能逐漸趕上Native了呢趟卸?目前的Hybrid、nw.js图云、Electron邻邮、react native、weex等都可以看做Web App在性能方面向Native靠近的嘗試帕翻。更何況半路又殺出個(gè)微信小程序萝风。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末规惰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子歇万,更是在濱河造成了極大的恐慌贪磺,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件劫映,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡泳赋,警方通過(guò)查閱死者的電腦和手機(jī)祖今,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)耍目,“玉大人大渤,你說(shuō)我怎么就攤上這事「蹋” “怎么了烫幕?”我有些...
    開(kāi)封第一講書人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵较曼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我捷犹,道長(zhǎng)萍歉,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任憔晒,我火速辦了婚禮蔑舞,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘从撼。我一直安慰自己钧栖,他們只是感情好呆馁,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著阴挣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茎芭。 梳的紋絲不亂的頭發(fā)上誓沸,一...
    開(kāi)封第一講書人閱讀 52,158評(píng)論 1 308
  • 那天拜隧,我揣著相機(jī)與錄音,去河邊找鬼垦页。 笑死干奢,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的薄啥。 我是一名探鬼主播逛尚,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼赘艳!你這毒婦竟也來(lái)了克握?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤掰曾,失蹤者是張志新(化名)和其女友劉穎旷坦,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體秒梅,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡捆蜀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年辆它,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锰茉。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡飒筑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出定鸟,到底是詐尸還是另有隱情著瓶,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布沸久,位于F島的核電站余蟹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏窑睁。R本人自食惡果不足惜葵孤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尤仍。 院中可真熱鬧,春花似錦苏遥、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春谚殊,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背丛肢。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工蜂怎, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留置尔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓幽歼,卻偏偏與公主長(zhǎng)得像谬盐,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子飞傀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 這是一個(gè)演講稿,mark一下 1砸烦、前端的發(fā)展史 1外冀、前端 這是從維基百科上找到的關(guān)于前端的定義,一般來(lái)說(shuō),計(jì)算機(jī)程...
    白璞1024閱讀 1,739評(píng)論 0 51
  • 前端演進(jìn)史# 引言:前不久開(kāi)始寫技術(shù)分享文章的時(shí)候员舵,一直想從寫一篇關(guān)于前端簡(jiǎn)史相關(guān)的文章開(kāi)始藕畔。所以,一直在準(zhǔn)備著注服,...
    迷緣火葉閱讀 10,952評(píng)論 0 8
  • “我可以劃船不用漿溶弟, 我可以揚(yáng)帆沒(méi)有方向, 但是朋友啊辜御,當(dāng)你離我遠(yuǎn)去, 我卻不能不感傷” 一直很喜歡無(wú)印良品擒权,...
    木筆瓊?cè)~閱讀 319評(píng)論 0 0
  • 去年看朱光潛的《慢慢走碳抄,欣賞啊嫉入!》里面有一句話一直還記得贱鄙,他說(shuō)“你如果向我埋怨天公說(shuō),人生是多么苦惱岸耗!我說(shuō)件甥,人們...
    亦如是閱讀 676評(píng)論 0 0
  • 再見(jiàn)曲然已是三年后曾我,我坐飛機(jī)從北京飛往南京粉怕。南京我的家鄉(xiāng),這座充滿古色古香的城市承載了我太多的回憶抒巢,我拉著行...
    鄭一冉閱讀 879評(píng)論 8 6