ajax
ajax作用:ajax就是異步javascript和xml,使得不加載整個頁面的情況下,渲染部分區域的效果。ajax的過程就是從服務器請求數據并渲染到頁面上過程。
邏輯過程:
1、初始化xmlhttprequest對象,如果瀏覽器支持則新建XMLHttpRequest,如果瀏覽器不支持,如ie5,ie6,就新建一個ActiveXObject;//就是記不得大小寫,
var a;
if(window.XMLHttpRequest)
{
a=new XMLHttpRequest();
}
else
{
a=new ActiveXObject("microsoft.xmlhttp");//ie5,ie6
}
2、請求,定義發送方式、服務器地址和同步還是異步。裡面發送方式有POST和GET。GET的速度一般比POST快,但是以下情況應該使用POST:1、沒有緩存;2、大量請求;3、有無法識別的用戶字符;同步和異步的區別:同步提交請求后,會等待服務器響應后才會有後續操作,如果請求繁忙或者緩慢,可能導致應用程序掛起或者停止。同步方式適合小型的請求。同步請求沒有onReadyStateChange
//post
a.open("POST",url,true);
a.send("字符串")
//get
a.open("GET",url,true)
a.send()
3、響應
ResponseText:獲取服務器的非XML響應
ResponseXML:獲取服務器的XML響應
4、ReadyState
xmlhttprequest的三個重要屬性:
onReadyStateChange:每當ReadyState發生變化是,觸發函數
readyState:xmlhttprequest的狀態
0、未初始化請求;1、服務器路徑已建立;2、請求已接收;3、請求正在處理中;4、請求處理完成,并且響應已經就緒
status:
200:ok 404:未找到頁面
a.onReadyStateRequest=function(){
if(a.ReadyState==4&&a.status==200}
{
var b=a.RespomseText;
}
}
5、一般會把ajax的封裝為一個函數,這樣就可以被共用,使用回調函數處理響應。
將回調函數賦值給onReadyStateChange,每當ReadyState改變時,就會調用該函數。
jquery ajax:
vue Ajax:
1、異步加載vue-resource庫;
2、全局
vue.http.get(url,data).then(successcallback,failcallbak)
vue.http.post(url,data,body).then(successcallback,failcallbak)
局部
this.$http.其它一樣