一、簡介
AJAX即“Asynchronous Javascript And XML”(異步JavaScript和XML),允許服務器端與客戶端進行少量的數據交換完成客戶端的局部刷新,也就是所說的一步請求響應方式。
二、特點
1、 瀏覽器不會直接將請求輸送給服務器,而是委托給服務器內嵌的代理對象,由代理對象代替瀏覽器向服務器發送請求。
2、 在請求期間,處于等待響應的是代理對象,此時瀏覽器仍處于可用狀態,允許向其他服務器發送資源。
3、 服務器在響應的時候,直接通過I/o響應,將數據傳送給代理對象,代理對象的內存中原有數據將會被覆蓋,但是此時瀏覽器的數據沒有受到任何影響。
4、 代理對象將接收到的數據交給瀏覽器中指定的控件上,完成局部刷新。
弊端:增加開發工作量,增加運營成本(帶寬等)
三、開發流程:
1、 獲得瀏覽器中的一個閑置的代理對象
var xmlHttp=new XMLHttpRequest();
2、 初始化代理對象
a) 通知代理對象,本次請求的響應方式
b) 本次請求的目的地
c) 本次請求是否需要接受服務器返回的數據
i. True:接受的數據交給代理對象
ii. Flase:接受的數據直接交給瀏覽器的內存
xmlHttp.open(“get”,”test/count.action?num1=”+param1+”&num2=”+param2,true);
3、 通知代理對象發送請求
xmlHttp.send();
4、 添加一個實時監控,監控代理對象的工作工作狀態,根據工作狀態決定接受數據的最佳時機
a) 代理對象的五種工作狀態
i. readyState=0:得到了一個空閑的代理對象
ii. readyState=1:代理對象已經被初始化完畢
iii. readyState=2:代理對象已經將請求發送到服務器端,此時服務器端正在處理數據
iv. readyState=3:服務器已經處理完畢數據,此時,代理對象已經接收到了對象,代理對象正在編譯數據。
v. readyState=4:瀏覽器正在進行局部刷新,更新數據
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
data=xmlHttp.responseText;
5、 接受到代理對象返回的數據之后,將數據跟新到瀏覽器中指定的控件上,實現局部刷新功能
Document.getElementById(“sum”).value=data;}}
四、個人感悟
ajax在前端頁面的設計中至關重要,ajax為我們帶來了同步刷新,這項技術常用于表單中,用戶在每次填寫完一個表單之后便能夠將此表單自動提交,并在不用完全提交網頁的情況下實現局部的數據驗證,十分有利于大型網頁的使用。
五、這里將會寫上jquery的ajax