前言:ajax的知識相對比較簡單,此文章僅表明鄙人的總結和理解,若有錯漏,歡迎指正...javascript
Ajax的原理簡單來講經過XmlHttpRequest對象來向服務器發送異步請求,從服務器得到數據,而後用javascript來操做DOM而更新頁面。
XMLHttpRequest是ajax的核心機制,是一種支持異步請求的技術。簡單的說,也就是javascript能夠及時向服務器提出請求和處理響應,而不阻塞用戶。達到無刷新的效果。php
說人話就是:「HTTP協議的異步通訊」。java
那什麼是同步,異步呢?
同步是阻塞模式,異步是非阻塞模式。
同步就是指一個進程在執行某個請求的時候,若該請求須要一段時間才能返回信息,那麼這個進程將會一直等待下去,直到收到返回信息才繼續執行下去;
異步是指進程不須要一直等下去,而是繼續執行下面的操做,無論其餘進程的狀態。當有消息返回時系統會通知進程進行處理,這樣能夠提升執行的效率。面試
1) 建立一個XMLHttpRequest對象
2) 調用該對象的open方法
3) 若是是get請求,設置回調函數onreadystatechange = callback
4) Send
複製代碼
1) 建立一個XMLHttpRequest對象
2) 調用該對象的open方法
3) 調用setRequestHeader(「Content-Type」, 「application/x-www-form-urlencoded」);
4) 設置回調函數onreadystatechange = callback
5) Send
複製代碼
<script type="text/javascript">
$('#bid').click(function(){
$.ajax({
url:'3.query.php',//地址
dataType:'json',//數據類型
type:'GET',//類型
timeout:2000,//超時
//請求成功
success:function(data,status){
//alert(data);
//alert(status);
},
//失敗/超時
error:function(XMLHttpRequest,textStatus,errorThrown){
if(textStatus==='timeout'){
alert('請求超時');
setTimeout(function(){
alert('從新請求');
},2000);
}
//alert(errorThrown);
}
})
})
</script>
複製代碼
語法:ajax
$.get(URL,callback);
複製代碼
例子:json
$("button").click(function(){
$.get("demo_test.asp",function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
複製代碼
語法:bash
$.post(URL,data,callback);
複製代碼
例子:服務器
$("button").click(function(){
$.post("demo_test_post.asp",
{
name:"Donald Duck",
city:"Duckburg"
},
function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
複製代碼
想要了解更多關於ajax的知識,可參考如下博客:app
面試題 —— Ajax的基本原理總結
總結 - Ajax工做原理和實現步驟異步
結語:以往都是看別人的博客進行學習技術,其中不乏有精華博客也有吊兒郎當的CV大法文章,因此決定將本身所學所用所整理的知識分享給你們,主要仍是想爲了後浪們少走些彎路,多些正能量的博客,若有錯漏,歡迎指正,僅但願你們能在個人博客中學到知識,解決到問題,那麼就足夠了。謝謝你們!(轉載請註明原文出處)