Ajax五步使用法

來源:互聯網
上載者:User

        上篇部落格較為詳細的介紹了一下XMLHttpRequest的屬性、方法和事件控制代碼,這篇部落格來介紹一下Ajax的五步使用法。為了直觀,用一個簡單的例子說明:AjaxClient用於提交使用者名稱,AjaxServer用於判斷使用者名稱是否使用,並返回提示。

AjaxClient.html:

<html><head><title>ajaxClient</title><script type="text/javascript">    var xmlhttp;    function submit()         {    if(window.XMLHttpRequest)    {    //IE7 above,firefox,chrome^^    xmlhttp=new XMLHttpRequest();    //為了相容部分Mozillar瀏覽器,當來自伺服器響應開頭不是xml,導致的無法響應問題    if(xmlhttp.overrideMimeType)    {    xmlhttp.overrideMimeType('text/xml');    }    }    else if(window.ActiveXObject)    {    //IE5\IE6    xmlhttp=new activeXObject("Microsoft.XMLHTTP");    }    if(xmlhttp==null||xmlhttp==undefined)    {    alert("con't create XMLHttpRequest Object");    }    var userName = document.getElementById('testText').value;    //註冊回呼函數    xmlhttp.onreadystatechange = callback;    //發送資訊    xmlhttp.open('GET','AjaxServer.aspx?name='+userName,true);    xmlhttp.send(null);    }        function callback()         {        //判斷互動是否完成,是否正確返回            if (xmlhttp.readyState == 4 && xmlhttp.status == 200)             {                //擷取伺服器返回資訊            var message = xmlhttp.responseText;                //得到提示資訊div        var testDiv=document.getElementById('test');        testDiv.innerHTML=message;        }        }    </script></head><body>    <!--使用者名稱輸入框-->    <input type="text" name="wenben" value="" id="testText" />    <input type="button" name="ceshi" value="submit" onclick="submit();" />    <!--用於顯示提示資訊-->    <div id="test"></div></body></html>

AjaxServer.aspx.cs

protected void Page_Load(object sender, EventArgs e)    {        string getName = Request["name"].ToString ().Trim();        if (getName == "lida")        {            Response.Write(getName+" 不可用,該使用者名稱已經被使用");        }        else         {            Response.Write("可用,該使用者名稱尚未被使用");        }    }

 

如果採用POST方式,則需要更改open()和send()方法,並佈建要求頭部資訊:

//POST方式//需要制定RequstHeader//將請求參數寫入到send中xmlhttp.open('POST', 'AjaxServer', true);xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');xmlhttp.send('name='+userName);

 

測試結果:

        第一步:建立XMLHttpRequest,就像以前部落格中所說一樣,不能採用瀏覽器檢測,要使用能力檢測。建立XMLHttpRequest基本是兩種,一種是IE5/IE5.5/IE6使用的activeXObject;一種是其它瀏覽器使用的XMLHttpRequest()。建立一個全域的xmlhttp變數用來存放XMLHttpRequest對象。

        第二步:註冊回呼函數,注意的是僅僅是將回呼函數的地址傳給onreadystatechange,而不是傳回值,所以不能帶執行括弧。

        第三步:設定與伺服器互動的方式、地址、參數等資訊。

        第四步:向伺服器發送請求,啟動與伺服器的互動。

        第五步:建立回呼函數,讓回呼函數接收服務端返回的資料,然後更新頁面。

        如果僅僅是展示一下Ajax伺服器與瀏覽器頁面的互動過程,這個樣本就夠了,但需要掌握的不僅僅是互動的過程,其中涉及到的很多的細節問題,還需要隨著學習的深入繼續補充。

        以前也使用過瀏覽器內建的調試功能,通過今天調試,發現內建的開發人員工具功能還是挺強大的,不但可以調試js,還可以查看源檔案、請求和響應等具體內容,附圖一張:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.