Ajax全稱:Asynchronous Javascript and XML ,異步的javascript和XML。
Ajax不是一種語言,是一種無需重新加載整個網頁的情況下,能更新部分網頁的技術。(與后臺交互,實現局部更新,異步更新)
同步和異步:
同步(Ajax出現之前):客戶端發起請求,服務端對請求進行處理和響應,這期間客戶端一直在等待服務器端的響應,得到服務器端的響應之后客戶端重新載入頁面,這時候如果你有錯誤,只能再次發起請求,再次等待……
異步(Ajax出現之后):XMLHttpRequest的出現,使得 后臺 與 服務器 在不重新加載頁面的情況下進行數據的交換(并對網頁進行部分的更新)。
XMLHttpRequest
實例化XHR對象:
<span style="font-family:SimSun;font-size:12px;">var request </span><span style="font-family:Microsoft Yahei, Hiragino Sans GB, Helvetica, Helvetica Neue, 微軟雅黑, Tahoma, Arial, sans-serif;font-size: 14px;">= </span><span style="font-family:SimSun;font-size:12px;">new XMLHttpRequest();</span>
考慮瀏覽器兼容性:
XMLHttpRequest 兩個重要方法
var request; if(window.XMLHttpRequest){ request = new XMLHttpRequest();//IE7+,Firefox,Chrome,Opera,Safari… }else{ request = new ActiveXObject("Microsoft.XMLHTTP");//IE6,IE5 }
open(method,url,async)——參數:請求方式、請求地址、請求同步/異步;
send(string)——參數:使用POST方式時,填寫此參數。
用法實例:
request.open("POST","create.php",true);
request.setRequestHeader("Content-type","application/x-www-form-urlencoded"); //要寫在open和send之間
request.send("name=張三&sex=男");
readyState屬性:
0 :請求未初始化,open還沒有調用
1 :服務器連接已建立,open已經調用了
2 :請求已接收,也就是接收到頭信息了
3 :請求處理中,也就是接收到響應主體了。
4 ?: 請求已完成,且響應已就緒,也就是響應完成了