Web技術的前世此生(二)

前言:我是JavaScript,若是你還不認識我,不妨先看看《 Web技術的前世此生(一)

平靜的生活已經有一段日子了。前端

這一天,HTML大哥面露不悅地走過來問我:ajax

「Js,你是打算和咱們分家嗎?」segmentfault

「大哥,您這說的哪裏話,我什麼地方作的不對麼?」我一臉茫然地回答道。後端

「哼,我但是聽PHP老弟都說了,你最近老是讓它給你返回服務器上的數據。你就說有沒有這回事吧!」瀏覽器

「是有這麼回事,不過⋯⋯」服務器

「看吧,我就知道你小子翅膀硬了,敢跟你大哥搶生意了。誰不知道把服務器端的數據構建成網頁是你老哥個人活,你小子⋯⋯」dom

「等等,大哥,是您誤會了」,看大哥越說越火大,我趕忙打斷了它。「您還記得咱們那個叫Google的客戶麼?」異步

「別和我提那個偏執狂,上次和它合做那個電子郵箱的項目,我都費了老大勁了,它仍是不滿意,硬是說要作到在不從新加載整個網頁的狀況下,對網頁的部份內容進行更新。要知道一直以來,個人工做方式都是每一次請求就要從新載入一個新的頁面,它這不純屬是難爲人嗎⋯⋯呃,如今在說你要自立門戶的事呢,你扯它幹嗎?」spa

「大哥,您先別生氣,聽我給您解釋。就是那個叫Gmail的項目須要局部刷新的問題,以前您不是還問過我行不行嗎?當時我沒有想到辦法。但前幾天我又好好琢磨下,發現彷佛是可行的,我能夠經過一個叫XHR的傢伙去和服務器交換數據,而後再將取得的新數據經過dom插入到當前頁面中就能夠了。最近我也是一直在研究這事,還沒來得及和您說呢。」對象

「哎呀,你看我這腦子」,大哥滿臉愧色地說:」弄了半天原來你是在幫老哥我啊!剛纔大哥的態度⋯⋯」

「大哥」,我趕忙再一次打斷大哥的話,「您就別自我檢討了,如今辦法有了趕忙去告訴那個偏執狂纔是正事,畢竟是個大客戶,丟了多不划算。」

「哦,對對對,我這就去。」

伴隨着大哥的心結被解開,這場風波總算是過去了。

(猿知原味注:XMLHttpRequest(XHR)做爲JavaScript的一個對象,能夠用來在瀏覽器和服務器端傳輸數據。然而自從它1998年問世以來卻不多被重視,直到Google發佈了Gmail、Google Maps等一系列運用它開發的局部刷新的Web產品以後,這項異步請求的「新」技術才忽然大火起來,而且還有了一個在Web發展史上影響深遠的名字:Ajax)

時間來到了2005年,大概就是在那個時候,有人開始稱呼咱們一家「Web前端」。咱們前端家族成員最主要的特色就是運行在瀏覽器上,因此像PHP、ASP等那些運行在服務器上(後端)的傢伙這輩子是別想落戶到咱們家了。

圖片描述

提到瀏覽器,準確地說是瀏覽器們,我在這裏必需要吐槽一下。因爲是商業產物,因此成天爲了點市場份額打的你死我活的。本來我對它們之間的爭鬥沒有興趣,但直到有一天我發現,我構建的一樣一段腳本,竟然在它們身上呈現出的效果不統一,並且這種狀況隨着捲入爭鬥的瀏覽器種類增多變的愈來愈複雜⋯⋯

圖片描述

「該死的Js,爲何按鈕的點擊沒起做用?」,「新版本的Js不能阻止事件冒泡了嗎?」,「這Js八成是抽風了⋯⋯」

那段日子,我常常替瀏覽器們背鍋,承受着你們的誤解。就在我最煩心的時候,家裏來新人了——jQuery。

「嘿夥計,有啥絕活給咱們露一手」,大哥先發話了。

「小意思」,jQuery一邊回答一邊完成了一段ajax調用的代碼,期間也操做了dom。

看着這段雖然說像極了意大利麪條、卻着實短小精悍的代碼,我和大哥正在驚詫的時候,jQuery又發話了:「歐了大哥,如今這段代碼能夠放到任何瀏覽器上運行了。」

「你是說⋯⋯你能作到和js同樣的事,而且還⋯⋯還解決了瀏覽器兼容的問題?」大哥驚訝的說話都開始結巴了。那一刻,我忽然感覺到史無前例的危機感。

「也不能徹底這麼說,個人存在只是爲了讓人類儘量不用考慮瀏覽器兼容的問題,而且以更優雅的方式更方便地操做Web頁面,實際上背後的功臣仍是js前輩,我只是它的小跟班。」

聽了jQuery的一番話,我熱(ru)淚(shi)盈(zhong)眶(fu)地走上前去握住它的手,「歡迎來到我們家,之後就是一家人了。」

打那之後,個人生活就愜意多了,除非有jQuery解決不了的問題我纔出面,通常而言這個小跟班都能很出色的完成任務。

然而與此同時,PHP老兄的日子卻不那麼好過,Web後端正醞釀着一場變革。

故事讀完了,仍是意猶未盡?不要緊,關注「猿知原味」公衆號(yz--yw),還有一大波生動有趣的乾貨等着你。

傳送門:《Web技術的前世此生(一)》《Web技術的前世此生(三)》

相關文章
相關標籤/搜索