ajax技術是一個非常好的技術,而目前來說,前端工程師必須使用這一技術去構建它的前端項目。因為它可以一步的請求服務端的數據,從而讓頁面可以無刷新的來更新相關的內容,這一點相比原有的老的前端技術的話要方便太多了,對於用戶的體驗來說也要好太多了。

你如果非要說它的缺點的話,那麼只有一個,也就是說對於搜索引擎的優化不是很好。但是目前來說的話,我覺得這一點可以完全忽略不計了,因為絕大多數的網站或者說項目的流量並不依賴於搜索引擎,而是依賴於一些平臺的導入流量,比如說微信公眾號等等之類的,那麼在這種情況下就完全不必去考慮所謂的搜索引擎優化了。

如果不考慮搜索引擎優化的話,那麼使用ajax的技術,那就是有百利而無一害了,作為一個前端工程師,你必須掌握這門技術。至於它的應用場景,那實在是太多了,我就不一一贅述了,反正你記住一點,好好去學就可以了。

以上文字只是我的個人觀點,如果各位看官有不同的觀點,歡迎在評論區中討論留言,我會認真的答覆每一條評論的。

如果喜歡我的回答,可以給我點贊並關注我,我在這裡謝謝大家了。


在BAT實習,用thinkPHP寫項目的時候,曾經用過ajax,剛剛接觸的時候,簡直驚為天人。接下來,我們就來聊聊,ajax在不同場景的優劣勢。

ajax介紹與優勢以及適用場景

英文全稱是asynchronous JavaScript and xml,是一種創建互動式網頁應用的網頁開發技術。要記住,ajax是一種非同步的,用於快速創建動態網頁的技術。它能夠通過與後臺進行少量的數據交換,使網頁實現非同步更新。這個聽起來似乎有點耳熟是不是。我們曾經在之前的回答中聊過websocket協議用於在線聊天室。其實如果不用websocket協議,而使用ajax輪詢,也能起到相似的效果。

具體舉例子來說,和女神正在用網頁端qq聊天,如果使用普通的http協議,那麼每次想獲取女神的回復都需要瀏覽器帶著一個大腦袋的http request去問伺服器,這樣一方面很慢,一方面又很佔帶寬影響網速。如果女神剛好去洗澡了,男孩子只好打開視頻網站來消磨時間等待女神,如果聊天頁面使用http請求的話,結果就是既等不來女神回復,又發現視頻一卡一卡的,實在是很糟糕的體驗。

但是如果用ajax輪詢就不一樣了,ajax可以只攜帶很少的數據就去與後端交互,獲取數據之後,再更改部分頁面。從結果上看就是不會明顯影響帶寬,又能及時拉回女神的回復更新在屏幕上。

這個場景就能看出ajax的優勢也就是適用場景就是數據發生變更時,迅速重新渲染部分HTML,而無須載入整個頁面。

弊端

但是如果使用大量的使用ajax,原本的B/S架構(browser-server)就會變成逐漸像C/S(client-server)靠攏。什麼是C/S架構呢,你把軟體下載安裝到電腦上,比如qq,比如愛奇藝客戶端,就算C/S架構。在瀏覽器環境下,這種情況就會帶來一些問題,並且會影響整個瀏覽器的使用體驗。比如ajax會要求瀏覽器必須載入完js文件後,才能渲染數據,因此用戶首次打開頁面的時候會發現載入速度不一致。

綜上,ajax作為一門先進的技術,大幅改進了B/S架構的使用體驗,但是如果無休止且大量的並發ajax的話,會是得其反,因為我們在使用的時候還是要注意的。

以上是我的淺見,如果對您有幫助歡迎點贊留言。

我是蘇蘇思量,來自BAT的Java開發工程師,每日分享科技類見聞,歡迎關注我,與我共同進步。


菜農本人非常喜歡Ajax技術,曾經幻想Ajax控制一切,也曾經購買了域名「HotAjax.com.cn」(後來放棄了該域名),Ajax雖然優點多多,但終歸它歸屬於「非同步通訊」,實時性相對工控的要求較差。

如下圖所示,點擊上面紅色的「在線瀏覽」,通過Ajax技術就會非同步地(實際非常快,沒感覺延時的存在)顯示到最下面的「編輯顯示」,並且「在線瀏覽」數也被你「+1」,這就證明瞭你訪問了網站。

如果要求實時性更好的,網友推薦用同步的「WebSocket」技術,本人一直未實戰,不敢評述,只能認為同步的WebSocket比非同步的Ajax技術更先進。


ajax:無頁面刷新提高用戶網頁瀏覽體驗

傳統同步模式:例如一個電商網頁載入如果採用同步的方式,所有的商品模塊按順序載入,這樣網頁的完整顯示時間基本等於同步調用請求的時間之和,頁面載入時間和客戶滿意度成反比,這個就好比一個人去倉庫裝貨,貨物越多耗時越長

ajax:用戶點開網址,網頁靜態信息會快速渲染,同時開啟多個ajax非同步請求後臺數據完成頁面數據更新,因響應時間基本都是毫秒級別,客戶根本感覺不到,這就好比多個人去倉庫裝貨,人越多耗時越短,另外網頁局部動態操作時,如果沒有ajax整個網頁都要重新載入,嚴重影響客戶體驗,藉助ajax可以實現網頁局部更新,提高用戶體驗,一般前端比較常用的angularjs等mvvm框架直接將網頁元素與後臺數據模型雙向綁定,便於前後端數據交互


說實話沒感覺ajax有啥弊端,因為非同步化提升頁面友好度。勉強算弊端的可能是長連接,畢竟http除了websocket,都是短鏈接,所謂的長連接也是tcp層做的長連接。而對於webim業務,ajax是不友好的,所以會用websocket代替。

其他的存在跨域,其實都是可以解決的。


ajax是無刷新的網頁交互技術,可以很好地提高Web應用系統的應用體驗。


推薦閱讀:
相關文章