AJAX(Asynchronous Javascript And XML)
1.什麼是AJAX:
是異步的javaScript And Xml,與伺服器進行異步的資料互動,傳輸資料可以為XML,也可以為
文本檔案,或者JSON格式的檔案。
2.最大的特點:
不用重新整理整個頁面,就可以使頁面實作局部重新整理,通過JavaScript來控制頁面的元素。
與伺服器進行互動。
3.同步和異步:
同步互動:當用戶端向服務端發送請求之後,需要等待伺服器響應結束之後,才可以發送第二
個請求。
異步互動:當用戶端向伺服器發送請求之後,不需要等待伺服器響應結束之後,就可以發送第二
個請求。
4.ajax優點和缺點
優點:
AJAX使用Javascript技術向伺服器發送異步請求;
AJAX無須重新整理整個頁面;
因為伺服器響應内容不再是整個頁面,而是頁面中的局部,是以AJAX性能高;
缺點:
AJAX并不适合所有場景,很多時候還是要使用同步互動;
AJAX雖然提高了使用者體驗,但無形中向伺服器發送的請求次數增多了,導緻伺服器壓力增大;
因為AJAX是在浏覽器中使用Javascript技術完成的,是以還需要處理浏覽器相容性問題;
5.ajax實作步驟(四步):
1.得到XMLHttpRequest,不同的浏覽器建立的方式是不一樣的:
大多數浏覽器:var xmlHttp = new XMLHttpRequest();
IE6: var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
IE5.5(更早): var xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
2.打開連接配接: xmlHttp.open("","",bool);
打開與伺服器的連接配接,裡面有三個參數:
1.送出方式:GET 或者 POST;
2.伺服器URL: 請求的伺服器位置,GET在URL後面加個?,?号後面都是參數
3.為布爾類型:true/false ,如果為true代表異步請求。
例如:xmlHttp.open("GET","AjaxDemo1?userName=lipeng",true);//true代表異步請求
3.發送請求:xmlHttp.send(null):
發送資料到伺服器:
參數:代表請求體裡面的内容,如果是GET,由于GET沒有請求體,是以給null,如果不給,
可能造成部分浏覽器出現錯誤。
如果是POST:需要給定指定的參數:例如xmlHttp.send("userName=lipeng");
4.監聽從伺服器傳送過來的資料 0,1,2,3,4五種狀态都可以監聽到
xmlHttp對象的五種狀态:
> 0狀态:剛建立,還沒有調用open()方法;
> 1狀态:請求開始:調用了open()方法,但還沒有調用send()方法
> 2狀态:調用完了send()方法了;
> 3狀态:伺服器已經開始響應,但不表示響應結束了!
> 4狀态:伺服器響應結束!(通常我們隻關心這個狀态!!!)
通過xmlHttp.readyState 得到狀态碼
伺服器的響應碼:
200 ok 成功
404 通路不到資源
500 伺服器出現錯誤
通過xmlHttp.status 得到伺服器響應碼
我們一般隻關心伺服器是否結束和響應碼是否成功
if(xmlHttp.readyState==4 && xmlHttp.status==200){}
等到伺服器傳送過來的資料:
得到文本檔案:
xmlHttp.responseText;
得到XML格式的檔案:
xmlHttp.responseXML;
常用Jquery操作ajax請求,ajaxfileupload上傳檔案(http://blog.csdn.net/qiantujava/article/details/37934225)。