整理一個自己用的Ajax例子,封裝,調用!

來源:互聯網
上載者:User

什麼是Ajax?

也就是javascript可以及時向伺服器提出請求和處理響應,而不阻塞使用者。達到無重新整理的效果。

核心機製為:XMLHttpRequest

XMLHttpRequest屬性:

 onreadystatechange  每次狀態改變所觸發事件的事件處理常式。
  responseText     從伺服器處理序返回資料的字串形式。
  responseXML   從伺服器處理序返回的DOM相容的文檔資料對象。
  status                 從伺服器返回的數字代碼,比如常見的404(未找到)和200(已就緒)
  status Text         伴隨狀態代碼的字串資訊
  readyState         對象狀態值,0—未初始化 1—正在載入  2—載入完畢 3—互動 4—完成。

 

JS:

function Ajax() {
     var xmlHttpReq = null;
     if (window.XMLHttpRequest) {
         xmlHttpReq = new XMLHttpRequest();
     } else {
         if (window.ActiveXObject) {
              xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
         }
     }
     var handler = null;
     this.invoke = function (url, mode, synchro, _handler) {
         handler = _handler;
         xmlHttpReq.open(mode, url, synchro);
         xmlHttpReq.onreadystatechange = this.callback;
         xmlHttpReq.send(null);
     };
     this.callback = function () {
         if (xmlHttpReq.readyState == 4) {
              if (xmlHttpReq.status == 200) {
                   handler(xmlHttpReq.responseText);
              } else {
                   alert("There was a problem retrieving the XML data:\n" + xmlHttpReq.statusText);
              }
         }
     };
}

 

 調用方式:

 

var ajax = new Ajax();

ajax.invoke("http://www.xx.com/getlist.aspx?type=1&id=1","GET",true,function(response){
    var json = eval("(" + response + ")");
});

 

Jquery方式:

 

    //參數設定,設定的格式為key:value,如果{"cl":"check","dd":"dd"},擷取的格式為cl=check&dd=dd
    var params = $.param({"il":Math.random()});
    //驗證是否登入
    $.ajax({
        type:"POST",
        url:"Control/Login.aspx",
        data:encodeURI(params),
        success:function(response){
            var json = eval("("+response+")");
            //操作JSON,json[0];json.Table[0].id;
        }
    });

//---------------
        $.getJSON("Control/GetData.aspx",{t:Math.random()},function(json){
            alert(json.ok);
            if(json.ok==true){
                alert(json.Table[0].ID);
            }
        });

//遍曆JSON
$.each( { name: "John", lang: "JS" }, function(i, n){
  alert( "Name: " + i + ", Value: " + n );
});

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.