加勒比HEZYO黑人专区-久久精品国产99国产精品亚洲-精品国产18久久久久久-久久人妻少妇嫩草AV

歡迎光臨 織晶網絡官網!

  • 新聞動態
  • 020-39182790
行業動態您現在的位置:首頁 > 新聞動態 > 行業動態

近幾年網頁前端技術盤點

作者:織晶客服部   發布于:2016/10/17 10:16:55  點擊量:  來源:織晶網絡

Web 發展了幾十個春秋,風起云涌,千變萬化。我很慶幸自己沒有完整地經歷過這些年頭,而是站在前人的肩膀上行走。Web 技術發展的速度讓人感覺那幾乎不是繼承式的迭代,而是一次又一次的變革,一次又一次的創造。這幾年的前端,更為之甚!

我從 12 年底開始接觸前端,12 年之前的前端發展情況只能從上一輩的筆觸中領會。本文會盤點從 09 年開始到 15 年間前端技術的革新,同時也會從多個角度,解讀近幾年前端技術發展的潛在因素,其中穿插了若干對前端演進的拙見,難免會有錯誤和疏漏,望讀者可以補充和斧正。


那些年,一度追捧,一度放棄

下面,花一些篇幅簡單回顧下 09 年到 15 年前端的發展歷程。


09 年,基礎類庫完善,尋求突破

09 年之前,JavaScript 還處于對自身語言的完善過程中,而到了 09 年,JavaScript 類庫已經頗為成熟,jQuery/Prototype//Dojo 等都已經發布了好幾個 stable 版本,各大類庫也是相互吸收優點,不斷完善并提高自身性能,然而功能上已經沒有太多增加的勢頭。部分框架開始了思想上的轉變,更加注重前端開發的組織和結構,條理性強了很多,如 YUI 等。

從 ECMAScript 規范的爭執,開啟了瀏覽器引擎大戰,各大廠商也趁機瓜分 IE 份額,Chrome 和 Firefox 在這場戰役中取得大勝,V8 也敲響了前端的大門。為了迎合市場的激烈競爭,IE 開始了升級之旅,09 年初發布 IE8,全面兼容 CSS2.1。

而此時,Node.js 和 3G Mobile 這兩只巨獸開始浮出水面,Web 標準也開始向 HTML5、ECMAScript5.0 靠攏。


10 年,看齊標準,關注 Web 性能

毫無疑問,這一年,各大巨頭都看清了 HTML5 是 web 發展的未來,在保留原來前端技術的狀態下,都簇擁著拉扯 HTML5 的裙擺。富客戶端應用也在這一年蓬勃生長,ExtJS/Dojo 搖身變為企業級框架,各類組件化概念和產品如約而至。

延續著 09 年的變化,10 年的前端顯得頗為沉寂,然而在標準的運用和推動上,各大廠商也是十分賣力。IE 9 出來了預覽第三版,iPhone 的 Safari 已經能夠支持眾多 HTML5 內容:Canvas/Video/Audio/Geolocation/Storage/Application Cache/Web SQL Database 等。

W3C 宣布成立 Web 性能工作組,Google 和 Mozilla 紛紛推出應用商店,瀏覽器調試工具也豐富了起來,人們開始更多地關注開發體驗和性能問題。


11 年,HTML5 扛大旗,Flash 堪憂

2011 年 HTML5 的技術發展和推廣都向前邁進了一大步,語義明確的標簽體系、簡潔明了的富媒體支持、本地數據的儲存技術、canvas 等等各類技術被廣泛應用。這一年,很多 web 開發者也面臨一項技術的抉擇,HTML5 or Flash?從 Flash Player 11.1 開始,Adobe 不再繼續開發面向移動設備瀏覽器的 Flash 插件,積極投身于 HTML5,這意味著 Flash 技術的凋零。

這一年,HTML5 游戲火爆到了一個高潮,移動端開發工具和調試工具也日益成熟。jQuery 已經成為大小公司日常開發的標配,成千上萬的 JQ 插件讓網頁開發變得尤為輕松,而隨之而來的也是頁面的臃腫和性能調優的深入探索。

Node.js 已經悄然崛起,在 github 上的訪問量已經超過了 Rails,國內的云應用開始嘗試使用 Node.js,Node.js 相關工具也紛紛出來。


12 年,響應式開發,工程化推進

隨著硬件技術的發展,各手機廠商又開始騷動起來,為了占有更多的市場,不斷提高產品的性價比,體驗也得到了不斷的優化。借著先前兩年 HTML5 刮起的東風,移動端上的 web 開發也顫抖了起來。移動端的開發挑戰不亞于 PC 上對多個瀏覽器的支持,這一年,萌生了眾多移動端框架,如 Sencha Touch/Zepto.js/JQ Mobile 等,相對 PC 端框架,它們更加輕便。

而移動端的崛起,帶來了許多終端開發難題:多終端適配,多分辨率適配,遠程調試等等,而隨著這些難題一個個被解決,移動端生長的勢頭變得更加強盛。此時 Twitter 也推出了 Bootstrap, 這個前端開發工具包不僅方便了前端,也方便了后端同學,它的出現讓快速建站更加簡單。

編程思想的切換,迎來了 CoffeeScript 和 TypeScript,這兩個預處理語言的出現又為 JavaScript 引來了不少其他方向轉型過來的開發者。JavaScript 的兄弟 Node.js,也在命令行領域開拓了一片不小的疆域,甚至有動搖 Perl 和 Ruby 地位的趨勢。

在前端工程化上,幾個派系相互爭斗,產出了 AMD、CMD、UMD 等規范,也衍生了 SeaJS、RequireJS 等模塊化工具。前端在這一年很有跳躍感。


13 年,爆發式增長,百花齊放

規范和標準上有不少產出。Web Components 的出現給前端開發開辟了新思路;WebDriver 規范的出來推動了自動化測試的進程,ECMAScript 6 的規范草案落地,Webapp 工作小組在這一年也是相當活躍。

Chrome 瀏覽器在這一年也有了很大的突破,開始支持 SPDY,使用 Blink 取代 webkit 作為 Chromium 的新渲染引擎,Chrome DevTools 的調試體驗大幅度提升。這一年中,Chrome 連同其他瀏覽器廠商快速推動了各項草案規范的實現。

語言能力上依舊在增強,并且從 JS 開始擴散到 CSS,LESS、SASS 和 Stylus 等 CSS 預處理語言開始走俏,Web 開發變得更加緊湊。

而在無線端,應用不再局限于 Webapp,由于流暢度、性能等方面不能滿足用戶體驗的需求,各大公司開始轉向 Native 方向的研究,進而出現了 Hybrid 和 PhoneGap 的繁榮,它們為 JS 調用了提供更多的設備 API。

Node.js 大放異彩,很多公司在生產環境中使用 Node.js,同時也出現了諸如 Express、Meteor 等小巧的快速搭建 Node.js Server 的應用框架。

各瀏覽器的調試也是種類繁多、功能豐富,PhantomJS 在自動化測試上開始取代 Selenium,出現了眾多的遠程調試方案和工具。

前端工程化開始普及,各公司開始推出自己的前端集成開發解決方案。


14 年,移動端的崛起,HTML5 和 ES6 落地

HTML5 正式定稿,這意味著,web page 正式演變為 web application。ES6 華麗麗走進前端,走的很穩重,它的 Module/Class 等特性已經完全讓這門語言具備了開發大型應用的能力。

大而厚的基礎庫難以滿足靈活場景,Mobile 要求極致體驗,MV* 庫鋪卷而來,如 vue/angular/knockout 等。

Web Components 跨終端組件快速發展,移動端開發迎來一次升華。Node.js 前后端分離的流行,中間層的出現改變了前后端的合作模式。2014 是顛覆式的一年,前端發展在這一年開始形成了一個短暫的穩定格局。


15 年,觀念的轉變,步入前端工業化生產

今年格外引人注目的框架是,類 React。Facebook 在 React.js Conf 2015 大會上推出了基于 JavaScript 的開源框架 React Native,它結合了 Web 應用和 Native 應用的優勢,可以使用 JavaScript 來開發 iOS 和 Android 原生應用。在 JavaScript 中用 React 抽象操作系統原生的 UI 組件,代替 DOM 元素來渲染等。敲一次代碼,能夠運行在多個平臺上,其優勢可見一斑。除了 React ,還有手機淘寶推出的 Weex 框架,它吸收了 vue.js 的編程精華,編程風格更加簡約。

在眾多構建工具中,如今瀟灑存活的并不多。體驗完 grunt 和 browserify 后,gulp 順勢而至,爾后又出現了 webpack、jspm 等。而包管理工具,經歷了 components、bower、spm 后,npm 開始主導整個市場。

Node.js 的應用已經鋪天蓋地,各大公司前端都把 Node.js 作為分離前后端的主要手段,并且在測試、監控等方面沉淀了大量內容。不過,這個市場是很苛刻的,Node.js 的性能難以達到 C/C++ 的水平,那么接下來要做的就是要提升性能,至少得接近 C/C++。


Web 規范和標準

最開始,我們看到的 JavaScript 還只是一個簡單的腳本語言,配合著 AJAX,在網頁上翻騰了好幾個年頭。隨著互聯網趨勢越來越明顯,互聯網業務量和業務復雜度不斷增加,很多網頁變得相當復雜,如讓我們震驚了好一會兒的 Gmail,交互復雜,體驗優良。為了更好的多人協作,代碼中的 Utils 庫越來越大,在這些庫中,基礎部分更多的是對 JavaScript 語言本身的拓展,比如給 String 加一個 repeat 函數,再加一個 trim 函數,再加一個 endWith 函數等等。

復雜的業務中會經常看到一層又一層的回調處理,回調的嵌套讓代碼的可讀性變的很差,而且很難將多個異步并行處理。為了改變這種編程范式,我們做了很多的思考,使用事件監聽,使用各種手段拉直回調,平坦地調用。

慢慢的,如果你在關注 W3C 小組的動向,會發現,那些被認可的,并且被廣泛重復定義的東西,都被納入了標準。最開始的 jQuery/prototype,前者主要是對瀏覽器做兼容處理,讓開發者不再把精力放到瀏覽器的差異上;后者是對語言本身的拓展,對 JavaScript 各種類型做拓展,并且提供了一套拓展任何對象的功能集。而現在的開發,我們很大程度上不再依托這些類庫。規范和標準已經把這些差異都統一了,String 中自帶了 includes/startsWith/endsWith/repeat/padStart/padEnd 等函數,Array 自帶了 from/forEach/of/keys/values/find/findIndex 函數…

規范的標準是為了讓開發者得到更好的編程體驗,編程不是目標,目標是將編程生產力轉化成實際效益,越少的阻礙對開發者越有利。各瀏覽器廠商當然也認識到了這一點,他們不斷地提升自己產品的體驗,將標準中的新特性都融合進去,比如 ES6 中的 Promise/Generator/Class/Module 等等。在這些內容普及之前,我們不需要加入 jQuery/prototype 這些「不純粹」的東西,而是添加兩個 shim 和 polyfill,如 es5-shim,html5shiv 等等。待到山花爛漫時,再輕松刪掉這些補丁程序。

這兩年工程化很熱,W3C 小組也看到了,這就是市場的需求,為了完成一個大型應用的編程,就必須模塊化、組件化,于是在規范中也出現了 Module & Module Loader;Node.js 的到來,讓很多前端工程師開始接觸數據庫操作,面對巨量的異步,我們忍氣吞聲寫了無數的回調地獄,盡管使用了很多 Promise 相關的操作,程序結構依然松散難以閱讀,于是規范中也開始出現了 async/await 等對 Generator 的上層封裝。文字已經不能滿足當代人的溝通需求,音視頻等富媒體傳輸走進了我們的生活,于是規范中也出來了 WebRTC/WebAudio 等規范。

只要規范出來了,后續市面上就會根據規范來實現一套 shiv,這些 shiv 提供了同樣的 API,提供了同樣的編程體驗。當瀏覽器自我進化完成之后,這些 shiv 也將成為歷史,被開發者遺棄在代碼的注釋之中。這些都是規范和標準的魅力,它的存在,就是讓開發者把精力投入到自己的業務之中,編程和范式的工作交給它。

在 這里 可以看到,W3C 各個小組最近都在干啥。標準不能囊括一切。




上一篇:不做好你的網站策劃,再牛的建站技術也是徒勞

下一篇:互聯網巨頭加碼云計算,出現了這四個微妙的現象