十年WEB技术发展历程
Ajax
03年的時候我上六年級。那時候網(wǎng)吧剛在小縣城的角落萌生。傳奇,大話西游第一代網(wǎng)游一時風靡。我抱著試一試的心態(tài)給了網(wǎng)吧老板兩塊錢想申請個號玩玩,然后接下來的一個小時我一直在,注,冊,賬。號。
彼時網(wǎng)吧用的512k的帶寬,注冊的時候,填了一堆信息,提交。頁面跳轉(zhuǎn),嘣。”您填寫的信息有誤,請重填”。然后跳轉(zhuǎn)回注冊頁面,以此循環(huán)。我如今時常想,假設(shè)當時ajax能普及開來。我就能夠省2塊錢了。
那么ajax是什么?
首先ajax是一種技術(shù)。
以往的網(wǎng)頁交互方式。用戶在點擊一個button后,比方提交button,用戶就要等待漫長的數(shù)據(jù)和server的交互,期間用戶無法進行不論什么操作,僅僅能點根煙。而ajax所做的。就是在向server發(fā)送請求的時候,我們不必等待結(jié)果。而是能夠同一時候做其它的事情,等到有了結(jié)果我們能夠再來處理這個事。
事實上ajax技術(shù)早在1998年的時候就已經(jīng)由微軟實現(xiàn)了,然而直到2005年2月,Adaptive Path公司的Jesse James Garrett發(fā)表文章"Ajax: A New Approach to Web Applications"。人們讀了后認為哎喲不錯哦這個屌,這之后ajax才大規(guī)模普及開來。
ajax的出現(xiàn),極大了提高了web的用戶體驗。
時至今日,即使國內(nèi)IT發(fā)展再怎么落后。全部站點的登錄注冊也已經(jīng)實現(xiàn)了ajax交互。用戶點填寫完信息后,頁面不用刷新就能夠知道信息提交成功與否。哪錯改哪。
另外ajax作為一種前后端分離的解決方式,也已經(jīng)被國內(nèi)大多數(shù)不非常low的公司所採用。也間接導致了php等網(wǎng)頁腳本語言的衰落。
jQuery
早年的js編程,代碼的效率是極其低下的。這點尤其體如今操作dom上。開發(fā)人員想要給一個button加入事件。要寫長長一大段反復的代碼去獲取到這個button,再寫長長一大段反復的代碼去加入事件。
雖然老油條會將經(jīng)常使用的操作封裝起來,可是對于不會封裝的新手,這無疑是非常痛苦的一件事,尤其再加上各種各樣的兼容。
2006年,本著解救菜鳥,讓他們do more的宗旨,jquery誕生。jQuery誕生的意義,一是對ie6 7 8 及各種割據(jù)一方的瀏覽器做好了兼容,二是極大簡化了dom操作,使開發(fā)效率大大提升。jquery非常火爆。火爆的有些前端僅僅會寫jquery而不會寫原生js的程度。時至今日,說jquery write once。see everywhere已經(jīng)不為過了。
jquery的還有一個意義(我認為)在于。它催化了人們對前端的興趣與探索,相比linux。你用非常低的成本,就能夠?qū)懗鲆粋€讓不懂編程的妹子說歐巴你碉堡了的效果,讓人們認為哎喲(又)不錯哦這個屌。此后大量的類庫和基于jquey的插件雨后春筍般誕生,前端行業(yè)歌舞升平欣欣向榮。網(wǎng)頁開發(fā)進入一個新時代。
Chrome
天下武功出谷歌。
在ie6,7,8的時代里面,雖然Firefox也緩慢的挑戰(zhàn)ie的地位。
但和2009年開始Google開始推廣的chrome瀏覽器產(chǎn)生的顛覆性影響比起來,遜色非常多。
Chrome使用Apple的開源內(nèi)核webkit,良好的設(shè)計標準和市場反應(yīng)。促進瀏覽器高速迭代,讓IE在windows10中徹底消失。
chrome瀏覽器的推出,將簡化前端的入門程度又推進了一步。其自帶的調(diào)試工具好用又無腦,我們能夠利用其輕松的查看網(wǎng)絡(luò)狀態(tài),載入順序,進行斷點調(diào)試等,同一時候谷歌的插件功能。又給開發(fā)人員提供了極大便利。
眼下chrome最新版開始採用blink內(nèi)核,測試版本號中。已經(jīng)能夠?qū)ss3動畫進行追蹤和調(diào)試。
在我還沒有想象到的時候。chrome已經(jīng)實現(xiàn)了它。
一句話,沒有chrome,就沒有新中國。就僅僅能用firefox了。
GitHub
隨著軟件項目的迭代加快。項目版本號工具也不斷的演進,經(jīng)歷CVS, SVN,GIT。
到眼下為止CVS差點兒相同已經(jīng)從互聯(lián)網(wǎng)行業(yè)慢慢消失,SVN作為文件和文檔存儲存在,由linux內(nèi)核發(fā)明人Linus創(chuàng)建的版本號工具GIT如今作為代碼版本號標準。Github依賴于git成為開發(fā)人員團隊協(xié)作的社區(qū)!
到2015年1月github上已注冊的開發(fā)人員超過一千萬,開源項目幾千萬。
當中2014中國研發(fā)者在github上增長最快。
你差點兒能夠在上面找到一切你想要的代碼…比方username..password..
OAUTH
OAuth1或OAuth2與以往的授權(quán)方式不同之處是OAUTH的授權(quán)不會使第三方觸及到用戶的帳號信息(如username與password)。
產(chǎn)生背景:最常見的服務(wù)場景,用戶須要使用兩個不同企業(yè)的服務(wù)。登錄驗證A企業(yè)。下載內(nèi)容;然后登錄驗證B企業(yè),上傳內(nèi)容到B企業(yè)服務(wù)。復雜又耗時。
不管是用戶。還是A、B都會想要互通服務(wù)。這就產(chǎn)生了核實身份的需求。舊的username、password機制會造成A/B企業(yè)有權(quán)限查看甚至改動對方的用戶資源。為了達到確認身份、服務(wù)互通。Google、Yahoo、Microsoft牽頭促使OAuth1.0產(chǎn)生。
之后的OAuth2.0是各大互聯(lián)網(wǎng)企業(yè)基于https安全的一次新規(guī)劃。
眼下最常見的應(yīng)用場景主要在授權(quán)登錄上,如微信、qq、微博等等。
JSON
Json雖然是2001年就產(chǎn)生的標準,但被廣泛應(yīng)用是在2008年之后各種Ajax應(yīng)用、iPhone、Android設(shè)備流行之后。舊的服務(wù)體系多是企業(yè)級,所以XML對java型的企業(yè)級服務(wù)定位故意。但對于流量限制,語義簡單的API服務(wù)來說,XML龐大、冗余、不易學又占帶寬。
去年我剛工作的時候,后臺給我返回一個數(shù)組,沒有發(fā)言權(quán)的我在是要遍歷這個數(shù)組還是轉(zhuǎn)化為json格式之間糾結(jié)了非常久。
Json的普及,從還有一個角度體現(xiàn)了web開發(fā)的一個優(yōu)勢。不管你后臺是java ruby php還是python。你僅僅要給我一個json格式的接口。我就能撐起整個地球。
DJANGO&RAILS
敏捷開發(fā)打破了項目研發(fā)模式。在2010之后的WEB2.0時代,Html5盛行。前端工作被分離出去。PHP那種網(wǎng)頁腳本的優(yōu)勢沒那么明顯,雖然在CMS和論壇模板上依舊有優(yōu)勢。Django和Rails的最大優(yōu)勢在于,他讓個人或兩三個的小團隊。實現(xiàn)整套產(chǎn)品成為可能。以Instagram為例,最初兩個pythonproject師用django高速實現(xiàn)了服務(wù)端的全部功能。在用戶增長時。再將大訪問量和大數(shù)據(jù)量的服務(wù)獨立出去。
雖然現(xiàn)實殘酷,rails每況日下,IE8和rails誰先消失僅僅是先后問題。但其提供的解決方式還是被非常多后生所效仿。人們都會記得這朵曇花。
Bootstrap
2011年Twitter開源的網(wǎng)頁端GUI框架。jquery兼容了不同瀏覽器的js部分,bootstrap則兼容了不同瀏覽器的css部分。甚至于說。作為一個后端開發(fā)。你無需了解css,無需前端,無需設(shè)計師,僅僅要看一看bootstrap的文檔,就能夠搭起一個美觀慷慨的后臺管理系統(tǒng)。常見相似的GUI框架還有zurb的foundation,google的materialize,百度也曾出過一個名為GMU的移動端框架。
就我個人來說,我并不喜歡這些gui框架,雖然他們簡化了css,實現(xiàn)了一些非常炫酷的效果。雖然我在項目中也用到過這些,雖然我不想承認我是綠茶。
這些框架最大的缺點就是,千篇一律,全部的頁面都是一個樣子。一樣的nav,一樣的sidebar。一樣的表單,連鼠標點上去放個光都一模一樣。就像我假設(shè)長了三條腿(雖然確實長了三條腿)別人會說我非常別致讓他們眼前一亮,但假設(shè)全部人都長了三條腿。web也就失去其魅力了。
還有一個缺點是臃腫,一個css就走100多k的流量,其js插件又大都依賴jquery。忍心么。
當然,其為了解決響應(yīng)式提出的柵格化html的思想還是非常值得借鑒的。
IOS & ANDROID系統(tǒng)的普及
2009年之后IOS和Android的高速發(fā)展。導致WEB開發(fā)發(fā)生下面改變:
1. html5在移動瀏覽器上優(yōu)先實現(xiàn)。Android和IOS設(shè)備全面支持html5、CSS3,加速了IE消失。
2. 上網(wǎng)隨時隨地發(fā)生。鼠標點擊、內(nèi)容繁復的網(wǎng)頁越來越簡潔,響應(yīng)式設(shè)計高速流行。
3. APP和server交互大部分和網(wǎng)頁一樣基于HTTP協(xié)議,webapp。hybrid app的概念被提出。
關(guān)于webapp,這里簡單說下web相比原生的優(yōu)勢。
- 跨平臺:常說的一次編譯,到處執(zhí)行
- 免安裝:打開瀏覽器。就能使用
- 高速部署:升級僅僅需在server更新代碼,而不像client須要更新版本號
- 超鏈接:能夠與其它站點互連。能夠被搜索引擎檢索
聽起來刁刁的。這些優(yōu)勢卻經(jīng)不住推敲。
首先,不同系統(tǒng)的用戶使用習慣是不同的,ios用戶返回button習慣在左上角,而安卓用戶卻習慣在屏幕最下方的位置,產(chǎn)品經(jīng)理問。那放在哪兒。
呵呵噠不知道。其次,以前看過一個調(diào)查報告。問用戶更喜歡用client還是web端。
喜歡client的用戶遠遠超過了web端。你問我喜歡什么,我也是喜歡client。你問我為什么,我認為比較有安全感吧,并且更新版本號讓我認為非常爽,非常有存在感,讓我知道我并沒有被世界遺忘。讓我知道你們產(chǎn)品在更新,在為我擔心。另外超鏈接..我一個client要你seo干什么。這還沒完,webapp的缺點還有一大把,最大的缺點莫過于沒有GPU加速,想要實現(xiàn)一個復雜一些動畫,真是要了瀏覽器親命了。
其次網(wǎng)頁是單線程的,載入dom時會堵塞js,導致的結(jié)果就是,卡。一卡就煩了,煩了就關(guān)了,用戶減一。
而hybrid就不同了,hybrid app的意思是混合原生應(yīng)用。將須要頻繁更新的頁面作為web放在遠程更新。這是一個靠譜的解決方式。BAT有非常多案例,如微信公布的JS SDK。掌上百度和淘寶clientAndroid版。
當然這里邊的坑有非常多,有機會。我把我踩過的坑講給你們聽。
NodeJS
我糾結(jié)了一會node屬不屬于前端范疇的問題。我認為是屬于的。
解決高并發(fā)一直是后臺哥哥們樂于討論的問題,比方咱們的好近實時監(jiān)控系統(tǒng)。理論上每一個連接都會生成一個新線程,每一個新線程可能須要 2 MB 配套內(nèi)存。
在一個擁有 8 GB RAM 的系統(tǒng)上,理論上最大的并發(fā)連接數(shù)量是 4,000 個用戶。
隨著用戶的增長,咱們希望監(jiān)控程序支持很多其它用戶,這樣,就必須加入很多其它server。當然,這會添加業(yè)務(wù)成本。尤其是server成本。除了成本上升外。還有一個技術(shù)問題:用戶可能針對每一個請求使用不同的server,因此。不論什么共享資源都必須在全部server之間共享,到這里,技術(shù)就到了瓶頸。
node誕生的初衷。就是為了解決問題。node解決問題的方法是:更改連接到server的方式。每一個連接發(fā)射一個在 Node 引擎的進程中執(zhí)行的事件,而不是為每一個連接生成一個新的 OS 線程。并為其分配一些配套內(nèi)存。
nodejs屬于server端語言。在前后端分離這場圈地運動中是前端的一個有利武器,同一時候在前端自己主動化上也提供了大量的可編程工具(grunt,bower,gulp等),淘寶百度對nodejs的熱度一直非常高,自然而然我認為這是一個趨勢。
去年美團成立了美團酒店的團隊,選擇了node作為后臺語言。圈走了后臺大部分的工作。我在想,前端js加上node再加上對UI的技能需求,以后前端project師是不是該叫全端project師了。
BIG DATA
大數(shù)據(jù)大概是過去幾年最火熱的名詞,我一大批同學聽說數(shù)據(jù)挖掘年薪30萬都嗷嗷嗷去做數(shù)據(jù)庫了。
大多數(shù)時候,我們在談大數(shù)據(jù)事實上都是在談在海量數(shù)據(jù)下的數(shù)據(jù)挖掘、數(shù)據(jù)分析、智能推薦、實時分析等。不同公司的技術(shù)方案不同,我僅僅列兩個國內(nèi)成功的案例:
? 京東個性化電商,場景包含基于行為、偏好、地域、時間、好友關(guān)系等維度,向不同的用戶推薦不同的產(chǎn)品,不同用戶搜索產(chǎn)品排序也不同…
? 百度地圖東莞8小時遷徙圖。百度搜索智能提醒
? 360手機衛(wèi)士,電話號碼防騷擾功能是通過用戶的地域、身份、騷擾趨勢。將標記的2.56億個電話號碼選出1000個和用戶關(guān)聯(lián)度最高的,寫入用戶手機的10k的文本里,達到不聯(lián)網(wǎng)不做不論什么網(wǎng)絡(luò)交互的情況下,為用戶防騷擾
HTML5+CSS3
這是這幾年被說爛了的一個詞,人人都在說HTML5。問HTML5是什么。他們也說不清楚,就是酷,就是炫,就是酷炫。
在我看來。HTML5僅僅是一個三人成虎的東西,它吸引的眼球遠超過了它提供的功能。HTML5僅僅是提供了一些新的API,就等于一個app從1.0升級到2.0添加了附近的人功能而已。
并且其提供的API。也就是在移動端試一試水。在pc端由于兼容的問題,始終不能被明媒正娶。
pc端的開發(fā)還是以HTML4.0+CSS2為基準漸進增強。至于css3。它最被人關(guān)注的動畫。也是flash玩剩下的東西。
移動端的飛速發(fā)展催化了HTML5的發(fā)展,HTML5的發(fā)展也促使各瀏覽器趨于標準化。
這條標準化路上,微信功不可沒,1024,圍住神經(jīng)貓。淘寶十年。LEXUS NX這些融合了大量HTML5+CSS3元素的頁面讓人印象深刻。
此外,微軟拋棄IE代號,開發(fā)edge,各大瀏覽器廠商的不斷標準化,HTML5草案定稿,ES6草稿的不斷實現(xiàn)與完好,前端之路看起來是一條京畿坦途,我充滿期待。
未來
3D頁游?WebOS? 虛擬現(xiàn)實?
最后,隨著用戶硬件性能的提升,網(wǎng)絡(luò)帶寬的越來越粗。傳感系統(tǒng)。Retina,WebGL技術(shù)的日漸成熟。再加上O2O的蓬勃發(fā)展,上邊這些會成為現(xiàn)實么?
轉(zhuǎn)載于:https://www.cnblogs.com/blfbuaa/p/7142510.html
總結(jié)
以上是生活随笔為你收集整理的十年WEB技术发展历程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java简历项目经验大全(java商城项
- 下一篇: 使用memcache作为中间缓存区的步骤