AJAX (Asynchronous JavaScript and XML,異步的 JavaScript 和 XML)。它不是新的編程語(yǔ)言,而是一種使用現(xiàn)有標(biāo)準(zhǔn)的新方法,是在不重新加載整個(gè)頁(yè)面的情況下與服務(wù)器交換數(shù)據(jù)并更新部分網(wǎng)頁(yè)的藝術(shù)。
那么,讓我們一起走進(jìn)AJax的世界吧。
基礎(chǔ)語(yǔ)法
學(xué)習(xí)Ajax之前,我們要明確自己的需求,那就是在不刷新頁(yè)面的前提下實(shí)現(xiàn)異步的與服務(wù)器進(jìn)行交互,更新頁(yè)面信息。使用Ajax其實(shí)也是很簡(jiǎn)單的,我們只需要遵循一定的步驟即可。
•創(chuàng)建Ajax對(duì)象(原生的需要判斷當(dāng)前瀏覽器的類型)
•設(shè)置回調(diào)函數(shù) (完成與服務(wù)器的交互之后所觸發(fā)的函數(shù))
•打開請(qǐng)求,并發(fā)送。(根據(jù)請(qǐng)求方式的不同,代碼書寫稍有不同)
•客戶端獲得反饋數(shù)據(jù),更新頁(yè)面
獲取Ajax對(duì)象
不同的瀏覽器對(duì)Ajax的支持是不一致的,所以我們要區(qū)別的對(duì)待。
設(shè)置回調(diào)函數(shù)
設(shè)置回調(diào)函數(shù)的目的就是在Ajax完成與服務(wù)器的交互之后,將獲取到的數(shù)據(jù)信息,添加到頁(yè)面上。
通常我們會(huì)指定onreadystatechange函數(shù)作為我們的回調(diào)處理函數(shù)。
相關(guān)于Ajax與服務(wù)器交互有如下狀態(tài)信息供我們?cè)诰幋a的過(guò)程找中參考。
.readystate
關(guān)于加載狀態(tài)有如下幾個(gè)常用的數(shù)值:
•0: 請(qǐng)求未初始化
•1: 服務(wù)器連接已建立
•2: 請(qǐng)求已接收
•3: 請(qǐng)求處理中
•4: 請(qǐng)求已完成,且響應(yīng)已就緒
.status
加載結(jié)果的狀態(tài)信息有:
•200: “OK”
•404: “未找到此頁(yè)面”
開啟交互
一談起交互,映入腦海的就是雙方。也就是我們的ajax客戶端和服務(wù)器之間的交互。所以我們需要明確請(qǐng)求數(shù)據(jù)在服務(wù)器上的位置
open(method,url,async)
url的使用會(huì)根據(jù)method的不同而不同,這一點(diǎn)我們務(wù)必要清楚。至于asynchronous這個(gè)參數(shù),一般來(lái)說(shuō)對(duì)于數(shù)據(jù)量很小的請(qǐng)求可以采用false,但是建議使用true來(lái)進(jìn)行異步的加載,來(lái)避免服務(wù)器壓力過(guò)大。
•GET方式
只是用這種方式很簡(jiǎn)單,指定url在服務(wù)器上的位置即可。這里紅色部分的理解相當(dāng)?shù)闹匾N覀儎?wù)必指定url為請(qǐng)求在服務(wù)器上的位置,一般采用絕對(duì)路徑的方式。
// 對(duì)Servlet來(lái)說(shuō)指定其注解上的位置即可xmlhttp.open("GET","/Test/servlet/AjaxServlet?userinput="+str.value,true); xmlhttp.send();
•POST方式
使用POST方式的時(shí)候,我們需要額外的多一項(xiàng)處理。如下例:
新聞熱點(diǎn)
疑難解答
圖片精選