HTTP2
HTTP2在今年中應該就能夠定稿,這無疑是web界的一個大事。HTTP2從google的SPDY中借鑑了不少特性,重點改善了以前HTTP協議在當前的網絡環境下的性能。簡單地來說,HTTP2更快。爲何呢,有幾個主要改變:
javascript
HTTP2還有其餘一些特性,例如header壓縮等,你們能夠到這裏集中學習一下。或者看看這個FAQ。
Firefox已經開始支持HTTP2,很多瀏覽器包括chrome以前就支持SPDY,估計對HTTP2的支持也會迅速開始,而nginx目前已經支持SPDY,就看何時各大主流web服務器開始支持HTTP2了。
一個不太好的現狀就是開發人員可能得面臨HTTP2和HTTP 1.1的同時存在。若是享受HTTP2的好處,同時又能向後兼容HTTP1.1,多是從此開發人員必須長期面臨的問題了。 前端
ECMAScript6
咱們如今用的javascript(注意,是javascript語言自己,不包含DOM等其餘東西)背後的標準是ECMA-262,也叫ECMAScript 5。它的下一個版本ECMAScript 6(簡稱es6),已經基本上快定稿了。這個版本里加入了不少開發過程當中須要的一些功能,例如: java
目前chrome和firefox已經開始逐步支持es6。不過你不用等到全部瀏覽器都開始支持es6後纔可使用它,由於目前已經有不少把es6代碼編譯成es5代碼的工具,例如babel和traceur等。有不少js的庫已經開始使用es6的各類功能了,其中包括angular 2.0。
不少人應該在用coffeescript,es6的不少功能彌補了以前es5的缺陷,吸取了不少coffeescript的功能,也許之後咱們就能夠不用coffeescript了,除非你不喜歡大括號小括號,而喜歡python的語法。不過若是coffeescript不進行升級,估計就享受不到未來es6帶來的好處,也難以適應HTML5時代各類數值計算的需求。
最後給你們一個比較不錯的es6學習資源,這本書寫得很細,如今仍是在線免費的。
Immutable js and React
React相信你們已經不陌生了,它是facebook開源的一個前端view框架,這裏之因此提到它是由於它背後的理念所帶動的一些技術。React自己雖然只是一個view框架,可是背後的virtual dom以及隨之帶來的性能優點是吸引人的地方,另外就是它採用的相似web component的封裝概念。這裏有一個比較js前端框架性能的試驗,雖然不是很準確,可是能夠做一個參考。
React的virtual dom以及它管理前端控件數據的方法,和immutable數據結構(immuatble js, remutable)、functional programming是能夠很容易結合起來使用的。clojurescript的om框架就是一個例子。想象一下全部的狀態都是不可變的,而且統一數據存儲(flux架構例如marty),每次數據的更新均可以很容易只傳遞diff(event source模式),整個數據在前端的流動都是單向的,不只變成模型變得簡單,並且由於全部的歷史數據都沒有被實際修改過,因此undo和redo的實現也會變得很容易。
React經過virtual dom實現了immediate模式的UI編程,低成本和快速的UI刷新也帶了人們更多啓發,而且React這種封裝方式也變得不侷限於dom view了。例如flipboard團隊基於React的封裝風格在canvas上封裝了一層UI,能夠實現精細的動畫效果,保證web版和移動版的體驗一致。facebook的React團隊最近在React會議上也發佈了一個能夠用js和React API進行原生移動開發的框架。
React也許只是另一個web view框架,可是我喜歡它給我帶來的一些新想法,這些想法也許可讓咱們在前端開發上更容易些。
Realtime web(實時web技術)
如今的web對實時性要求愈來愈高,這不光是因爲如今的技術能夠更好地支持實時性,也是因爲用戶體驗的驅動。實時性不光是體如今聊天這種需求上;咱們在手機上的操做,web瀏覽器上最好可以實時體現出來,即使咱們不刷新頁面,頁面也應該可以實時獲得更新。
前端因爲HTML5的出現對於實時需求有了更好的技術支持,例如新的WebSocket、WebRTC,long polling以及server push技術。然後端則早就出現了async IO編程技術,可以同時支持大量長鏈接。可是這些技術的進步歷來沒有中止過,這裏給你們隨便介紹幾個。
pushpin是fanout最近開源的一個高性能實時web後端技術,不一樣於其它的技術,它是一個proxy,自己不提供API編程框架,而是和已有的web API結合起來,讓它們變成支持大量長鏈接的API。從設計概念上,它把維護大量長鏈接這個功能和實際的API業務功能分離開來,讓前一個功能經過proxy的形式來實現,所以對實際API的框架和語言沒有要求,若是要支持更多長鏈接,也能夠經過橫向擴展這個proxy來實現,而不必定要改動後端API。
sockjs,是一個websocket的模擬,在支持websocket的瀏覽器上就會使用原生websocket,而在老的瀏覽器上則提供替代技術。可是它不止是一個前端js庫,它也同時提供了後端的編程框架,目前支持的語言和框架挺多了。
websocketd是一個有意思的東西,它能夠把任何符合接口的程序編程一個websocket後端,你甚至能夠用shell來寫API。
不少的web框架都支持異步編程模式,於是能夠支持大量併發長鏈接。也有相似於meteor這種提供總體解決方案的,還有不少近期的firebase,你們有興趣能夠本身去找找看。python
原文轉自:娛樂世界www.jxlazzw.com,娛樂世界平臺www.shimanke.cn,轉載請註明出處nginx