優點:減輕服務器的負擔,按需取數據,最大程度的減少冗余請求
局部刷新頁面,減少用戶心理和實際的等待時間,帶來更好的用戶體驗
基於xml標准化,並被廣泛支持,不需安裝插件等
進一步促進頁面和數據的分離
缺點:AJAX大量的使用了javascript和ajax引擎,這些取決於瀏覽器的支持.在編寫的時候考慮對瀏覽器的兼容性.
AJAX只是局部刷新,所以頁面的后退按鈕是沒有用的.
對流媒體還有移動設備的支持不是太好等
實例化ajax
//實例化對象 var xmlhttp=null; if(window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); }else{ xmlhttp=ActiveXObject("Mircrosoft.XMLHTTP"); //瀏覽器是否支持 XMLHttpRequest 對象 }
//向服務器發送請求
xmlhttp.open("請求的類型get或post","文件在的服務器上位置","true異步或false同步");
xmlhttp.send();//將請求發送到 服務器上
setRequestHeader("頭名稱","規定頭的值");
//服務器響應
responseText(); //獲取字符串形式的響應數序
responseXML(); //獲取XML形式的響應數據
onreadystatechange事件
//當請求發送到服務器的時候,我們需要執行
XMLHttpRequest的三個重要屬性
onreadystatechange 存儲函數,每當readyState屬性改變時,就會調用該函數
readystate XMLHttpRequest的狀態
0為請求未初始化
1服務器連接已建立
2 請求已接收
3 請求處理中
4 請求已完成,且響應已就緒
status 200 “OK” 404 未找到頁面
xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>Examples</title> <meta name="description" content=""> <meta name="keywords" content=""> <link href="" rel="stylesheet"> </head> <body> <form entype="multipart/form-data" name="aax"> <table border="0" width="300"> <tr> <td>名稱</td> <td><input type="text" name=name /></td> </tr> <tr> <td>類型</td> <td> <select name="s"> <option value="1">服裝</option> <option value="2">視頻</option> <option value="3">汽車</option> </select> </td> </tr> <tr> <td align="right">單價:</td> <td><input type="text" name="price"/></td> </tr> <tr> <td align="right">庫存:</td> <td><input type="text" name="total"/></td> </tr> <tr> <td align="right">圖片:</td> <td><input type="file" name="pic"/></td> </tr> <tr> <td align="right" valign="top">描述:</td> <td><textarea rows="5" cols="20" name="note"></textarea></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" onclick="ajax();" value="添加"/> <input type="reset" value="重置"/> </td> </tr> </table> </form> <script>
function ajax()
{
var f=document.aax;
var name=f.name.value;
var typeid=f.s.value;
var pic=f.pic.value;
var price=f.price.value;
var note=f.note.value;
var xmlhttp=null;
if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}else{
xmlhttp=ActiveXObject("Microsoft.XMLHTTP");
}
var lian="name="+name+"&typeid="+typeid+"&pic="+pic+"&price="+price+"¬e="+note;
$xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
xmlhttp.open("get","addcas.php",true);
xmlhttp.send(null);
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("sed").innerHTML=$xmlhttp.responeseText;
}
};
}
</script> </body> </html>