一直想寫寫這個(gè)話題调衰,苦于沒(méi)時(shí)間膊爪。最近提起筆想寫一些前端發(fā)展史自阱,做到知其然知其所以然嚎莉。提到web前端技術(shù),大家會(huì)想到技術(shù)的五花八門沛豌,層出不窮趋箩。但是前端發(fā)展史就像吳曉波寫的企業(yè)史一樣精彩絕倫。
不寫2004年以前的加派。因?yàn)?004年沒(méi)有ajax
2004年 谷歌發(fā)布gmail改變了世界叫确,ajax改變了一切。ajax發(fā)明者是iJesse James Garrett芍锦,說(shuō)到他為啥發(fā)明ajax呢竹勉,就要提提flash了。本人上大一時(shí)就對(duì)flash有印象娄琉,那時(shí)候做一個(gè)flash耗費(fèi)很久的時(shí)間次乓。但是jesse就想出了怎么用傳統(tǒng)web技術(shù)達(dá)到flash效果,他想到了javascript和xml結(jié)合孽水。
2006年 jquery工具庫(kù)誕生
本著拯救菜鳥(niǎo)票腰,讓他們do more的宗旨,jquery誕生女气。jQuery誕生的意義杏慰,一是對(duì)ie6 7 8 及各種割據(jù)一方的瀏覽器做好了兼容,二是極大簡(jiǎn)化了dom操作炼鞠,使開(kāi)發(fā)效率大大提升缘滥。jquery很火爆,火爆的有些前端只會(huì)寫jquery而不會(huì)寫原生js的程度谒主。時(shí)至今日完域,說(shuō)jquery write once,see everywhere已經(jīng)不為過(guò)了瘩将。
網(wǎng)頁(yè)開(kāi)發(fā)進(jìn)入一個(gè)新時(shí)代吟税。
2007年 第一代iphone發(fā)布 移動(dòng)互聯(lián)網(wǎng)誕生
2008年 google v8引擎
Json雖然是2001年就產(chǎn)生的標(biāo)準(zhǔn)凹耙,但被廣泛應(yīng)用是在2008年之后各種Ajax應(yīng)用、iPhone肠仪、Android設(shè)備流行之后肖抱。
2009年 node.js? es5誕生
解決高并發(fā)一直是后臺(tái)哥哥們樂(lè)于討論的問(wèn)題,比如咱們的好近實(shí)時(shí)監(jiān)控系統(tǒng)异旧,理論上每個(gè)連接都會(huì)生成一個(gè)新線程意述,每個(gè)新線程可能需要 2 MB 配套內(nèi)存。在一個(gè)擁有 8 GB RAM 的系統(tǒng)上吮蛹,理論上最大的并發(fā)連接數(shù)量是 4,000 個(gè)用戶荤崇。隨著用戶的增長(zhǎng),咱們希望監(jiān)控程序支持更多用戶潮针,這樣术荤,就必須添加更多服務(wù)器。當(dāng)然每篷,這會(huì)增加業(yè)務(wù)成本瓣戚,尤其是服務(wù)器成本。除了成本上升外焦读,還有一個(gè)技術(shù)問(wèn)題:用戶可能針對(duì)每個(gè)請(qǐng)求使用不同的服務(wù)器子库,因此,任何共享資源都必須在所有服務(wù)器之間共享矗晃,到這里仑嗅,技術(shù)就到了瓶頸。node誕生的初衷张症,就是為了解決這個(gè)問(wèn)題仓技。node解決這個(gè)問(wèn)題的方法是:更改連接到服務(wù)器的方式。每個(gè)連接發(fā)射一個(gè)在 Node 引擎的進(jìn)程中運(yùn)行的事件吠冤,而不是為每個(gè)連接生成一個(gè)新的 OS 線程浑彰,并為其分配一些配套內(nèi)存。
2009年angular誕生
2010 require.js開(kāi)始
2011 bootstrap
2011年Twitter開(kāi)源的網(wǎng)頁(yè)端GUI框架拯辙。jquery兼容了不同瀏覽器的js部分郭变,bootstrap則兼容了不同瀏覽器的css部分。甚至于說(shuō)涯保,作為一個(gè)后端開(kāi)發(fā)诉濒,你無(wú)需了解css,無(wú)需前端夕春,無(wú)需設(shè)計(jì)師未荒,只要看一看bootstrap的文檔,就可以搭起一個(gè)美觀大方的后臺(tái)管理系統(tǒng)及志。常見(jiàn)類似的GUI框架還有zurb的foundation,google的materialize片排,百度也曾出過(guò)一個(gè)名為GMU的移動(dòng)端框架寨腔。
2012 typescript
2013 react
2014年h5發(fā)布
前端大神尤雨溪開(kāi)源了vue.js
2015 react native
2015 es6
2016 es2016
2、下一代 Web 應(yīng)用模型 — PWA
PWA(Progressive Web App)是 Google 于 2016 年提出的概念率寡,2017 年已被迅速采用迫卢。PWA 旨在增強(qiáng) Web 體驗(yàn),可顯著提高加載速度冶共、可離線工作乾蛤、可被添加至主屏、全屏執(zhí)行捅僵、推送通知消息等等家卖。這些特性將使得 Web 應(yīng)用漸進(jìn)式接近原生 App。
2017
WebAssembly 受主流瀏覽器支持
WebAssembly (wasm)在今年受到了所有主流瀏覽器的支持庙楚,包括 Chrome上荡、Firefox、Safari 和 Edge 醋奠。wasm 源于 Mozilla 發(fā)起的 Asm.js 項(xiàng)目榛臼,用于補(bǔ)充 JavaScript伊佃,其本地解碼速度比 JS 解析快得多窜司,讓高性能的 Web 應(yīng)用在瀏覽器上運(yùn)行成為可能,比如視頻游戲航揉、計(jì)算機(jī)輔助設(shè)計(jì)塞祈、視頻和圖像編輯、科學(xué)可視化等等帅涂。
2018 尤xuxi開(kāi)始vue3.0
2019