1. 程式人生 > >十分鐘帶你瞭解Ajax

十分鐘帶你瞭解Ajax

[autonomic learning] Ajax

  1. def(定義):客戶端與伺服器端非同步的通訊的技術

  2. 原理:
    第一步:建立XMLHttpRequest 物件,xmlhttp=new XMLHttpRequest();(它有相容性問題,在IE中用的是new ActiveXObject)
    第二步:向伺服器傳送請求(GET/POST)

xmlhttp.open('POST',url,true);//非同步的
//xmlhttp.setRequestHeader("Content-type","application/x-wwwform-urlencoded");//POST時要加這句話
xmlhttp.send();

第三步:執行回撥,在回撥函式中進行相應的操作

xmlhttp.onreadystatechange=function()	{
     if	(xmlhttp.readyState==4	&&	xmlhttp.status==200){	
     //就可以執行相應的操作				
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;	}		} 
  1. readyState的5個值及status的常見狀態碼
    0: 請求未初始化 1: 伺服器連線已建立 2: 請求已接收 3: 請求處理中 4: 請求已完成,且響應已就
    200 伺服器成功返回 301 永久重定向 302 臨時重定向 404 資源找不到 500 伺服器錯誤 304 快取

  2. Ajax優缺點
    優點:無重新整理更新資料;非同步與伺服器通訊;介面與應用分離;減少冗餘請求和響應對伺服器造成的負擔…
    缺點:違背URL和資源定位的初衷 ;安全問題;幹掉back/history功能,破壞瀏覽器機制;太多客戶端程式碼造成開發上的成本