2015年值得關(guān)注的幾個WEB技術(shù)

HTTP2

HTTP2在今年中應(yīng)該就可以定稿瘾敢,這無疑是web界的一個大事蜈敢。HTTP2從google的SPDY中借鑒了很多特性,重點改善了之前HTTP協(xié)議在當前的網(wǎng)絡(luò)環(huán)境下的性能铸董。簡單地來講灭贷,HTTP2更快。為什么呢聪建,有幾個主要改變:

  • 首先是來自于同一個domain的HTTP請求可以共享同一個TCP連接了钙畔,這樣可以很大程度上解決網(wǎng)絡(luò)延時帶來的性能問題。比如你有很多圖片妆偏,現(xiàn)在也不用sprite化了刃鳄,因為反正它們會用同一個連接的。HTTP2的出現(xiàn)讓之前的很多web前端優(yōu)化技術(shù)可能不再需要了钱骂。
  • HTTP2不再是純文本的了叔锐,而是二進制的協(xié)議了挪鹏,這樣協(xié)議的解析也更簡單,而傳輸也更快愉烙。缺點是debug的時候需要費點功夫了讨盒。

HTTP2還有其他一些特性,例如header壓縮等步责,大家可以到這里集中學(xué)習(xí)一下返顺。或者看看這個FAQ蔓肯。

Firefox已經(jīng)開始支持HTTP2遂鹊,不少瀏覽器包括chrome之前就支持SPDY灾梦,估計對HTTP2的支持也會迅速開始虐先,而nginx目前已經(jīng)支持SPDY,就看什么時候各大主流web服務(wù)器開始支持HTTP2了馁筐。

一個不太好的現(xiàn)狀就是開發(fā)人員可能得面臨HTTP2和HTTP 1.1的同時存在调限。如果享受HTTP2的好處舟陆,同時又能向后兼容HTTP1.1,可能是今后開發(fā)人員必須長期面臨的問題了耻矮。

ECMAScript6

我們現(xiàn)在用的javascript(注意秦躯,是javascript語言本身,不包含DOM等其他東西)背后的標準是ECMA-262裆装,也叫ECMAScript 5踱承。它的下一個版本ECMAScript 6(簡稱es6),已經(jīng)基本上快定稿了米母。這個版本里加入了很多開發(fā)過程中需要的一些功能勾扭,例如:

  • 類定義語法,包括super铁瞒,繼承
  • lambda風(fēng)格的函數(shù)定義妙色,=> block level函數(shù)定義內(nèi)的lexical scope的this,默認參數(shù)慧耍,rest參數(shù)等
  • destructuring, 類似于ruby里的 [a, b, c] = [1, 2, 3]身辨,同時也適用于map和set,以及函數(shù)參數(shù)
  • symbol
  • iterator迭代器和generator芍碧,以及新的for of循環(huán)語法
  • template string煌珊,從此可以像在ruby和shell里一樣使用多行字符串
  • module語法,從語言層面上支持了模塊
  • 另外還有一系列新東西例如promise泌豆,proxy定庵,unicode支持等

目前chrome和firefox已經(jīng)開始逐步支持es6。不過你不用等到所有瀏覽器都開始支持es6后才可以使用它,因為目前已經(jīng)有很多把es6代碼編譯成es5代碼的工具蔬浙,例如babeltraceur等猪落。有很多js的庫已經(jīng)開始使用es6的各種功能了,其中包括angular 2.0畴博。

很多人應(yīng)該在用coffeescript笨忌,es6的很多功能彌補了之前es5的缺陷,吸收了很多coffeescript的功能俱病,也許以后我們就可以不用coffeescript了官疲,除非你不喜歡大括號小括號,而喜歡python的語法亮隙。不過如果coffeescript不進行升級途凫,估計就享受不到將來es6帶來的好處,也難以適應(yīng)HTML5時代各種數(shù)值計算的需求溢吻。

最后給大家一個比較不錯的es6學(xué)習(xí)資源颖榜,這本書寫得很細,現(xiàn)在還是在線免費的煤裙。

Immutable js and React

React相信大家已經(jīng)不陌生了,它是facebook開源的一個前端view框架噪漾,這里之所以提到它是因為它背后的理念所帶動的一些技術(shù)硼砰。React本身雖然只是一個view框架,但是背后的virtual dom以及隨之帶來的性能優(yōu)勢是吸引人的地方欣硼,另外就是它采用的類似web component的封裝概念题翰。這里有一個比較js前端框架性能的試驗,雖然不是很準確诈胜,但是可以作一個參考豹障。

React的virtual dom以及它管理前端控件數(shù)據(jù)的方法,和immutable數(shù)據(jù)結(jié)構(gòu)(immuatble js焦匈, remutable)血公、functional programming是可以很容易結(jié)合起來使用的。clojurescript的om框架就是一個例子缓熟。想象一下所有的狀態(tài)都是不可變的累魔,并且統(tǒng)一數(shù)據(jù)存儲(flux架構(gòu)例如marty),每次數(shù)據(jù)的更新都可以很容易只傳遞diff(event source模式)够滑,整個數(shù)據(jù)在前端的流動都是單向的垦写,不僅變成模型變得簡單,而且因為所有的歷史數(shù)據(jù)都沒有被實際修改過彰触,所以undo和redo的實現(xiàn)也會變得很容易梯投。

React通過virtual dom實現(xiàn)了immediate模式的UI編程,低成本和快速的UI刷新也帶了人們更多啟發(fā),并且React這種封裝方式也變得不局限于dom view了分蓖。例如flipboard團隊基于React的封裝風(fēng)格在canvas上封裝了一層UI尔艇,可以實現(xiàn)精細的動畫效果,保證web版和移動版的體驗一致咆疗。facebook的React團隊最近在React會議上也發(fā)布了一個可以用js和React API進行原生移動開發(fā)的框架漓帚。

React也許只是另外一個web view框架,但是我喜歡它給我?guī)淼囊恍┬孪敕ㄎ绱牛@些想法也許可以讓我們在前端開發(fā)上更容易些尝抖。

Realtime web(實時web技術(shù))

現(xiàn)在的web對實時性要求越來越高,這不光是由于現(xiàn)在的技術(shù)可以更好地支持實時性迅皇,也是由于用戶體驗的驅(qū)動昧辽。實時性不光是體現(xiàn)在聊天這種需求上;我們在手機上的操作登颓,web瀏覽器上最好能夠?qū)崟r體現(xiàn)出來搅荞,即便我們不刷新頁面,頁面也應(yīng)該能夠?qū)崟r得到更新框咙。

前端由于HTML5的出現(xiàn)對于實時需求有了更好的技術(shù)支持咕痛,例如新的WebSocket、WebRTC喇嘱,long polling以及server push技術(shù)茉贡。而后端則早就出現(xiàn)了async IO編程技術(shù),能夠同時支持大量長連接者铜。但是這些技術(shù)的進步從來沒有停止過腔丧,這里給大家隨便介紹幾個。

pushpin是fanout最近開源的一個高性能實時web后端技術(shù)作烟,不同于其它的技術(shù)愉粤,它是一個proxy,本身不提供API編程框架拿撩,而是和已有的web API結(jié)合起來衣厘,讓它們變成支持大量長連接的API。從設(shè)計概念上绷雏,它把維護大量長連接這個功能和實際的API業(yè)務(wù)功能分離開來头滔,讓前一個功能通過proxy的形式來實現(xiàn),因此對實際API的框架和語言沒有要求涎显,如果要支持更多長連接坤检,也可以通過橫向擴展這個proxy來實現(xiàn),而不一定要改動后端API期吓。

sockjs早歇,是一個websocket的模擬倾芝,在支持websocket的瀏覽器上就會使用原生websocket,而在老的瀏覽器上則提供替代技術(shù)箭跳。但是它不止是一個前端js庫晨另,它也同時提供了后端的編程框架,目前支持的語言和框架挺多了谱姓。

websocketd是一個有意思的東西借尿,它可以把任何符合接口的程序編程一個websocket后端,你甚至可以用shell來寫API屉来。

很多的web框架都支持異步編程模式路翻,因而可以支持大量并發(fā)長連接。也有類似于meteor這種提供整體解決方案的茄靠,還有很多近期的firebase茂契,大家有興趣可以自己去找找看。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末慨绳,一起剝皮案震驚了整個濱河市掉冶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌脐雪,老刑警劉巖厌小,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異战秋,居然都是意外死亡召锈,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門获询,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人拐袜,你說我怎么就攤上這事吉嚣。” “怎么了蹬铺?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵尝哆,是天一觀的道長。 經(jīng)常有香客問我甜攀,道長秋泄,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任规阀,我火速辦了婚禮恒序,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘谁撼。我一直安慰自己歧胁,他們只是感情好,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著喊巍,像睡著了一般屠缭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上崭参,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天呵曹,我揣著相機與錄音,去河邊找鬼何暮。 笑死奄喂,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的郭卫。 我是一名探鬼主播砍聊,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼贰军!你這毒婦竟也來了玻蝌?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤词疼,失蹤者是張志新(化名)和其女友劉穎俯树,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體贰盗,經(jīng)...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡许饿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了舵盈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陋率。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖秽晚,靈堂內(nèi)的尸體忽然破棺而出瓦糟,到底是詐尸還是另有隱情,我是刑警寧澤赴蝇,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布菩浙,位于F島的核電站,受9級特大地震影響句伶,放射性物質(zhì)發(fā)生泄漏劲蜻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一考余、第九天 我趴在偏房一處隱蔽的房頂上張望先嬉。 院中可真熱鬧,春花似錦楚堤、人聲如沸坝初。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鳄袍。三九已至绢要,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拗小,已是汗流浹背重罪。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哀九,地道東北人剿配。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像阅束,于是被迫代替她去往敵國和親呼胚。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,528評論 25 707
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫息裸、插件蝇更、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,033評論 4 62
  • 老大在現(xiàn)任老師那里補課倆次后,老師在學(xué)校對她格外的好呼盆,這時年扩,補課班的老師也通知她去上課,孩子很糾結(jié)访圃,問媽媽...
    崔槐春閱讀 245評論 0 1
  • 最近新來的同事厨幻,當然也是熟人,另外一個同事的老婆腿时。兩個人家都算外地的吧况脆,男方內(nèi)蒙的,女方我們這里另外一個縣城的批糟。雙...
    27ebdf2ac0e0閱讀 660評論 0 0
  • 工作之余刷微博跃赚,娛樂圈炸窩了,中國娛樂圈資深媒體人第一狗仔卓偉性湿,爆出消息稱:白百合婚內(nèi)出軌纬傲,并宣稱已和丈夫陳羽凡離...
    老街茶館閱讀 216評論 0 1