面試題準(zhǔn)備9-5:
Ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了—個(gè)中間層灯帮,使用戶操作與服務(wù)器響應(yīng)異步化庞呕。這樣把以前的一些服務(wù)器負(fù)擔(dān)的工作轉(zhuǎn)嫁到客戶端召川,
利于客戶端閑置的處理能力來處理霞丧,減輕服務(wù)器和帶寬的負(fù)擔(dān)扔嵌,從而達(dá)到節(jié)約ISP的空間及帶寬租用成本的目的掖桦。
Ajax的核心是JavaScript對(duì)象XmlHttpRequest本昏。該對(duì)象在Internet Explorer 5中首次引入,它是一種支持異步請(qǐng)求的技術(shù)枪汪。
簡而言之涌穆,XmlHttpRequest使您可以使用JavaScript向服務(wù)器提出請(qǐng)求并處理響應(yīng),而不阻塞用戶雀久。
在創(chuàng)建Web站點(diǎn)時(shí)宿稀,在客戶端執(zhí)行屏幕更新為用戶提供了很大的靈活性。下面是使用Ajax可以完成的功能:
動(dòng)態(tài)更新購物車的物品總數(shù)赖捌,無需用戶單擊Update并等待服務(wù)器重新發(fā)送整個(gè)頁面祝沸。
提升站點(diǎn)的性能,這是通過減少從服務(wù)器下載的數(shù)據(jù)量而實(shí)現(xiàn)的越庇。例如罩锐,在某購物車頁面,當(dāng)更新籃子中的一項(xiàng)物品的數(shù)量時(shí)悦荒,
會(huì)重新載入整個(gè)頁面唯欣,這必須下載整個(gè)頁面的數(shù)據(jù)。如果使用Ajax計(jì)算新的總量搬味,服務(wù)器只會(huì)返回新的總量值境氢,因此所需的帶寬僅為原來的百分之一蟀拷。
消除了每次用戶輸入時(shí)的頁面刷新。例如萍聊,在Ajax中问芬,如果用戶在分頁列表上單擊Next,則服務(wù)器數(shù)據(jù)只刷新列表而不是整個(gè)頁面寿桨。
直接編輯表格數(shù)據(jù)此衅,而不是要求用戶導(dǎo)航到新的頁面來編輯數(shù)據(jù)。對(duì)于Ajax亭螟,當(dāng)用戶單擊Edit時(shí)挡鞍,可以將靜態(tài)表格刷新為內(nèi)容可編輯的表格。
用戶單擊Done之后预烙,就可以發(fā)出一個(gè)Ajax請(qǐng)求來更新服務(wù)器墨微,并刷新表格,使其包含靜態(tài)扁掸、只讀的數(shù)據(jù)翘县。