一.ajax的作用: 1.就是讓js去讀伺服器上面的數據. 2.無刷新的情況下讀取伺服器上面的數據,例如:驗證賬號和密碼是否正確等. (1)ajax的優點: 1.減少冗餘請求和響應對服務造成的負擔. 2.無刷新更新頁面,帶來更好的用戶體驗. 3.減輕伺服器速寫的負擔,節約空間和寬頻租用成本。 4.採
一.ajax的作用:
1.就是讓js去讀伺服器上面的數據.
2.無刷新的情況下讀取伺服器上面的數據,例如:驗證賬號和密碼是否正確等.
(1)ajax的優點:
1.減少冗餘請求和響應對服務造成的負擔.
2.無刷新更新頁面,帶來更好的用戶體驗.
3.減輕伺服器速寫的負擔,節約空間和寬頻租用成本。
4.採用非同步提交,讀寫速度更快.
(2)ajax的缺點:
1.AJAX大量的使用了javascript和ajax引擎,這些取決於瀏覽器的支持.在編寫的時候考慮對瀏覽器的相容性
2. AJAX只是局部刷新,所以頁面的後退按鈕是沒有用的.
3. 對流媒體還有移動設備的支持不是太好等.
二. Get 和Post的區別:
get方式:常見的表單提交方式:將值在url後面提交;?名字=值&名字=值格.
提交表單例子:
<form action="www.baidu.com " method="get" (預設是get方式)>
姓名:<input type="text" name="userName"></br>
密碼:<input type="password" name="password">
<input type="submit" value="提交">
</from>
區別:
1.get方式是通過網址進行傳遞數據的,post是通過http中Content進行傳遞的.
2.get容量小,不適合傳遞大數據,(一般4k-10k),post方式容量相對大很多,一般伺服器可以達到2G容量.
3.對於太大的文件,就不會走post,走控制項.
4.get方式安全性差,post相對來說會好一點,一幫安全只能走https.
5.get方式是有緩存的,post沒有緩存. get更適合向伺服器獲取數據,post更適合向伺服器傳遞數據,
三:編寫一個Ajax:
1.創建一個ajax對象, 2.鏈接到伺服器, 3.發送請求 , 4.接收返回值,
(1) 創建一個ajax對象
var oAjax = new XMLHttpRequest()//不支持IE6
var oAjax = new ActiveXObject ("microsoft.XMLHTTP");//支持IE6
解決相容性:
if(window.XMLHttpRequest)
{
var oAjax = new XMLHttpRequest();
}else{
var oAjax = new ActivexObject("Microsoft.XMLHTTP"):
}
為什麼要用window.XMLHttpRequest作為參數,應為直接XMLHttpRequest做條件,IE6會直接報錯,
但是把XMLHttpRequest作為屬性,IE只會報undefined剛好滿足我們的條件.
(2)鏈接伺服器
oAjax.open('Get',url,true)
同步:一步步來.
非同步:多件事一起來.
(3)發送請求
oAjax.send();
(4)接受返回
oAjax.onreadystatechange = function()
{
//瀏覽器和伺服器進行到哪一步了.
if(oAjax.readyState==4)//讀取完成
{
if(oAjax.status==200)//讀取成功
{
fnSuccess(oAjax.responseText)
}else
if( fnfaild)
{
fnfaild(oAjax.status);
}
}
}
}
readystatus | 描述 |
0 | (未初始化)還沒有調用open()方法 |
1 | (載入)一調用send()方法,怎在發送請求 |
2 | (載入完成)send()方法完成,已收到全部響應內容 |
3 | (解析)正在解析響應內容 |
4 | (完成)響應內容解析完成,可以客戶調用了 |
同步請求:發生請求後,要等待伺服器執行完畢才繼續執行當前代碼。
非同步請求:發生請求後,無需等到伺服器執行完畢,可以繼續執行當前代碼。