了解Ajax

Ajax如何改進(jìn)Web頁(yè)面?

通過(guò)使用Ajax,頁(yè)面和應(yīng)用只向服務(wù)器請(qǐng)求它們真正需要的東西,也就是頁(yè)面中需要修改的部分,而且這也是服務(wù)器要提供的部分。這意味著通信量更小,更新更少,用戶等待頁(yè)面刷新的時(shí)間也更短。

利用Ajax,瀏覽器只會(huì)發(fā)送和接收頁(yè)面中需要修改的部分。

有時(shí)瀏覽器根本不必與服務(wù)器通信。



Ajax到底是什么?

Ajax采用一種心得方式使用原先已經(jīng)存在的一些技術(shù)。

Ajax并不是一個(gè)全新的技術(shù),不像Css或JavaScript那樣要求從頭學(xué)起;它也不是一組需要借助Photoshop才能完成的圖形技術(shù),Ajax只是采用一種新的方式來(lái)考慮如何使用你可能已經(jīng)知道的一些技術(shù)來(lái)完成你已經(jīng)在做的事情。


怎樣才能讓頁(yè)面“Ajax”呢?

Ajax是設(shè)計(jì)和構(gòu)建web頁(yè)面的一種方法,可以使web應(yīng)用焗油像桌面應(yīng)用一樣的交互性和響應(yīng)性。對(duì)你來(lái)說(shuō)這意味著什么呢?你可以盡可能在客戶的瀏覽器上完成處理。你的頁(yè)面會(huì)發(fā)出異步請(qǐng)求,使用戶可以繼續(xù)工作面不是等待響應(yīng)。另外只會(huì)更新頁(yè)面上確實(shí)改變的部分。最棒的是,Ajax頁(yè)面是使用標(biāo)準(zhǔn)Internet技術(shù)構(gòu)建的,有些技術(shù)你可能早已知道該如何使用,例如:
*XHTML
*層疊樣式表
*JavaScript
Ajax應(yīng)用還使用了另外一些技術(shù),盡管這些技術(shù)已經(jīng)出現(xiàn)了一段時(shí)間,但對(duì)你來(lái)說(shuō)可能還比較陌生,例如:
*XMLHttpRequest
*Xml&Json
*DOM

ps:異步請(qǐng)求是指在后臺(tái)發(fā)生的一個(gè)請(qǐng)求。
? ? ? ?處理請(qǐng)求時(shí)用戶可以繼續(xù)完成他的工作。


AJAX的優(yōu)缺點(diǎn)

優(yōu)點(diǎn)
1.AJAX使用JavaScript技術(shù)向服務(wù)器發(fā)送異步請(qǐng)求;
2.AJAX無(wú)需刷新整個(gè)頁(yè)面;
3.因?yàn)榉?wù)器響應(yīng)內(nèi)容不再是整個(gè)頁(yè)面,而是頁(yè)面的局部,所以AJAX性能高;

缺點(diǎn)
1.AJAX并不適合所有場(chǎng)景,很多時(shí)候還是使用同步交互;
2.AJAX雖然提高了用戶體驗(yàn),但無(wú)形中向服務(wù)器發(fā)送的請(qǐng)求次數(shù)增多了,導(dǎo)致服務(wù)器壓力增加;
3.因?yàn)锳JAX是在瀏覽器中使用JavaScript技術(shù)完成的,所以還需要處理瀏覽器兼容性問(wèn)題;


Question & Answer

Q:Ajax是不是就代表“Asynchronous JavaScript and XML”(異步JavaScript和XML)?

A:差不多吧,但不完全是,因?yàn)楹芏啾徽J(rèn)為是“Ajax”的頁(yè)面并沒(méi)有使用JavaScript或XML,所以可以把Ajax定義為一種構(gòu)建Web頁(yè)面的方法,使之像桌面應(yīng)用一樣焗油響應(yīng)性和交互性,這種說(shuō)法更合適,而不要過(guò)分考慮所涉及的具體技術(shù)。

Q:“異步”到底是什么意思?

A:在Ajax中,可以向服務(wù)器發(fā)出請(qǐng)求而無(wú)需用戶等待響應(yīng)。這就稱(chēng)為一個(gè)異步請(qǐng)求,這正是Ajax的核心所在。

Q:難道不是所有web頁(yè)面都是異步的嗎?比如瀏覽器不就是在我查找的同事加載圖像嗎?

A:瀏覽器確實(shí)是異步的,不過(guò)標(biāo)準(zhǔn)Web頁(yè)面卻不是。通常,Web頁(yè)面需要從一個(gè)服務(wù)器端程序得到某些信息時(shí),一切都會(huì)停滯不動(dòng),直到服務(wù)器響應(yīng)為止……除非頁(yè)面做出一個(gè)異步請(qǐng)求。這正是Ajax的關(guān)鍵。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • AJAX 原生js操作ajax 1.創(chuàng)建XMLHttpRequest對(duì)象 var xhr = new XMLHtt...
    碧玉含香閱讀 3,561評(píng)論 0 7
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,552評(píng)論 19 139
  • 大家好,我是IT修真院深圳分院第3期的學(xué)員,一枚正直純潔善良的前端程序員,今天給大家分享一下,修真院官網(wǎng)前端工程師...
    大大頭大閱讀 8,083評(píng)論 1 72
  • Yahoo!的Exceptional Performance團(tuán)隊(duì)為改善Web性能帶來(lái)最佳實(shí)踐。他們?yōu)榇诉M(jìn)行了一系列...
    拉風(fēng)的老衲閱讀 1,957評(píng)論 0 1
  • 五十三:請(qǐng)解釋 JavaScript 中 this 是如何工作的。1.方法調(diào)用模式當(dāng)一個(gè)函數(shù)被保存為一個(gè)對(duì)象的屬性...
    Arno_z閱讀 683評(píng)論 0 2

友情鏈接更多精彩內(nèi)容