Ajax是Asynchronous JavaScript and XML的縮寫,意思是異步JavaScript和XML,能夠節省用戶操作,時間,提高用戶體驗,減少數據請求。
例:使用ajax獲取某一文本文件的內容
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>ajax的原理</title> <script> window.onload=function(){ var oBtn=document.getElementById('btn'); oBtn.onclick=function(){ //1、創建對象,打開瀏覽器 var xhr=new XMLHttpRequest(); //2、在地址欄輸入地址 xhr.open('post','1.txt',true); //3、提交(發送請求) xhr.send(); //4、等待服務器返回內容 xhr.onreadystatechange=function(){ if (xhr.readyState==4) { if (xhr.status==200) { alert(xhr.responseText); }else{ alert("出錯了:"+xhr.status); } }; } } } </script> </head> <body> <input type="button" value="按鈕" id="btn" />點擊這里 <br/> ajax的原理<br/> 這里是ajax原理的第一個案例 </body> </html>
1、創建一個ajax對象,這里需要做個異常處理
var xhr = null; try { xhr = new XMLHttpRequest(); } catch (e) { xhr = new ActiveXObject('Microsoft.XMLHTTP');//ie6以下 }
2、在地址欄輸入地址,open方法
open(傳輸方式,地址,是否異步);
a、傳輸方式有post和get,get:是通過url地址傳輸的,傳遞的類型是字符串,且get有數據量限制,每個瀏覽器都不容;post:是通過瀏覽器內部傳輸的
b、是否異步,異步:非阻塞,前面的代碼不會影響后面代碼的執行;同步:阻塞,前面的代碼會影響后面代碼的執行
3、發送請求,相當於form的submit
4、等待服務器返回內容
onreadystatechange事件
readyState屬性:請求狀態
0 (初始化)還沒有調用open()方法
1 (載入)已調用send()方法,正在發送請求
2 (載入完成)send()方法完成,已收到全部響應內容
3 (解析)正在解析響應內容
4 (完成)響應內容解析完成,可以在客戶端調用了
status屬性:服務器(請求資源)的狀態
返回的內容
responseText:返回以文本形式存放的內容
responseXML:返回XML形式的內容