1.什么是AJAX?
AJAX全稱為“Asynchronous JavaScript and XML”(異步JavaScript和XML)辆脸,是一種創(chuàng)建交互式網(wǎng)頁(yè)應(yīng)用的網(wǎng)頁(yè)開發(fā)技術(shù)每强。它使用:使用XHTML+CSS來(lái)標(biāo)準(zhǔn)化呈現(xiàn)浪箭;使用XML和XSLT進(jìn)行數(shù)據(jù)交換及相關(guān)操作奶栖;使用XMLHttpRequest對(duì)象與Web服務(wù)器進(jìn)行異步數(shù)據(jù)通信宣鄙; 使用Javascript操作Document Object Model進(jìn)行動(dòng)態(tài)顯示及交互; 使用JavaScript綁定和處理所有數(shù)據(jù)鼻弧。
2.與傳統(tǒng)的web應(yīng)用比較傳統(tǒng)的Web應(yīng)用交互由用戶觸發(fā)一個(gè)HTTP請(qǐng)求到服務(wù)器,服務(wù)器對(duì)其進(jìn)行處理后再返回一個(gè)新的HTHL頁(yè)到客戶端, 每當(dāng)服務(wù)器處理客戶端提交的請(qǐng)求時(shí),客戶都只能空閑等待,并且哪怕只是一次很小的交互攘轩、只需從服務(wù)器端得到很簡(jiǎn)單的一個(gè)數(shù)據(jù),都要返回一個(gè)完整的HTML頁(yè),而用戶每次都要浪費(fèi)時(shí)間和帶寬去重新讀取整個(gè)頁(yè)面度帮。這個(gè)做法浪費(fèi)了許多帶寬,由于每次應(yīng)用的交互都需要向服務(wù)器發(fā)送請(qǐng)求,應(yīng)用的響應(yīng)時(shí)間就依賴于服務(wù)器的響應(yīng)時(shí)間寂诱。這導(dǎo)致了用戶界面的響應(yīng)比本地應(yīng)用慢得多安聘。與此不同,AJAX應(yīng)用可以僅向服務(wù)器發(fā)送并取回必需的數(shù)據(jù)念颈,它使用SOAP或其它一些基于XML的Web Service接口榴芳,并在客戶端采用JavaScript處理來(lái)自服務(wù)器的響應(yīng)。因?yàn)樵诜?wù)器和瀏覽器之間交換的數(shù)據(jù)大量減少歉井,結(jié)果我們就能看到響應(yīng)更快的應(yīng)用躏嚎。同時(shí)很多的處理工作可以在發(fā)出請(qǐng)求的客戶端機(jī)器上完成,所以Web服務(wù)器的處理時(shí)間也減少了箭阶。
3.AJAX的工作原理Ajax的工作原理相當(dāng)于在用戶和服務(wù)器之間加了—個(gè)中間層(AJAX引擎),使用戶操作與服務(wù)器響應(yīng)異步化荞彼。并不是所有的用戶請(qǐng)求都提交給服務(wù)器,像—些數(shù)據(jù)驗(yàn)證和數(shù)據(jù)處理等都交給Ajax引擎自己來(lái)做, 只有確定需要從服務(wù)器讀取新數(shù)據(jù)時(shí)再由Ajax引擎代為向服務(wù)器提交請(qǐng)求鸣皂。Ajax其核心有JavaScript寞缝、XMLHTTPRequest、DOM對(duì)象組成被啼,通過(guò)XmlHttpRequest對(duì)象來(lái)向服務(wù)器發(fā)異步請(qǐng)求,從服務(wù)器獲得數(shù)據(jù)命浴,然后用JavaScript來(lái)操作DOM而更新頁(yè)面贱除。這其中最關(guān)鍵的一步就是從服務(wù)器獲得請(qǐng)求數(shù)據(jù)碍讯。讓我們來(lái)了解這幾個(gè)對(duì)象冲茸。