Ajax 是一種無需重新加載網頁就能更新部分頁面數據的技術
Ajax的全稱是AsynchronousJavaScript and XML,即異步JavaScript+XML。
Ajax的工作原理相當於在用户和服務器之間加了—箇中間層(AJAX引擎),使用户操作與服務器響應異步化。並不是所有的用户請求都提交給服務器,像—些數據驗證和數據處理等都交給Ajax引擎自己來做, 只有確定需要從服務器讀取新數據時再由Ajax引擎代為向服務器提交請求
Ajax的優勢
(一) 無刷新更新數據
1. Ajax最大優點就是能在不刷新整個頁面的前提下與服務器通信維護數據。這使得Web應用程序更為迅捷地響應用户交互,並避免了在網絡上發送那些沒有改變的信息,減少用户等待時間,帶來非常好的用户體驗。
(二) 異步與服務器通信
1. AJAX使用異步方式與服務器通信,不需要打斷用户的操作,具有更加迅速的響應能力。優化了Browser和Server之間的溝通,減少不必要的數據傳輸、時間及降低網絡上數據流量。
(三) 前端和後端負載平衡
1. AJAX可以把以前一些服務器負擔的工作轉嫁到客户端,利用客户端閒置的能力來處理,減輕服務器和帶寬的負擔,節約空間和寬帶租用成本。並且減輕服務器的負擔,AJAX的原則是“按需取數據”,可以最大程度的減少冗餘請求和響應對服務器造成的負擔,提升站點性能。
下面是我對通過客服端向服務器端請求數據的步驟進行的函數封裝,這是最原始的ajax,現在已經沒人用了。
function ajax(url,fnWin,fnFaild){
//創建Ajax對象
//兼容
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject(“Microsoft.XMLHTTP”);
//建立連接
xhr.open(“GET”,url,true);
//發送請求
xhr.send();
//接收數據
xhr.onreadystatechange = function(){
if(xhr.readyState == 4){
if(xhr.status == 200){
if(typeof fnWin == “function”){
fnWin(encodeURIComponent(xhr.responseText));
}
}
else{
if(typeof fnFaild == “function”){
fnFaild();
}
}
}
}
}
現在有了各種框架,ajax用起來就更加方便了,如jquery
$.ajax({
type:"GET",
url:"test.json",
async:false,//false為同步,true為異步
dataType:"json",
success:function(data){
//成功時調用
console.log(data)
}
});
一般用ajax都是異步,當需要使用獲取的數據時,需要在success中調用,否則可以獲取不到。因為異步,你不知道他什麼時候才能得到數據。
ajax,回調函數會自動調用其中的方法 如這個th.projectIframe.onload
this.getAjax("./../../static/project.json",function (res) {
th.projectIframe.onload=function () {
console.log(1111111111)
th.plusData=th.projectIframe.mini.decode(res.data);
th.initProject();
};
});