快速學習AJAX之一 Ajax基礎

來源:互聯網
上載者:User

       大家好,這是一套AJAX的基礎教程,首先聲明一下我是從事ASP.NET開發

       但是我這回講解的AJAX不是ASP.NET其中的哪些控制項的操作。雖然ASP.NET內建的AJAX控制項給我們使用AJAX帶來了極大的方便

但是我決定我還是要一篇篇的更新  “原生態的AJAX”

     呵呵,我也不知道這套教程大概有多少講,但是有一點我一定將我知道的AJAX完全以一種簡單通俗的方式告訴大家。

     AJAX是什麼呢?英文的全稱你可以“有道一下”  說白了就是非同步JavaScript+XML

大家可以去Google上面搜尋一下AJAX的來曆什麼的,我這裡一些從簡。 弱弱的記得 希臘英雄裡面有一個名字挺像 “AJAX”的,哈哈......

     其實大家簡單的理解AJAX就是 一種“無重新整理的技術”當然這是泛泛而談,畢竟

AJAX技術沒有這麼簡單。

     我們接觸比較多的AJAX技術就是 線上地圖服務了,Google地圖就是率先將AJAX技術應用到切合實際的技術當中去的。

     AJAX技術中用到的四個比較重要的技術點  Javascrip  Css Dom(文件物件模型)   XMLHttpRequest對象   這個我們會在後面慢慢的接觸到

當你瞭解了以上的前三項技術,那麼你就可以接下來學習AJAX應用了。

好了,開始我們的AJAX之路

    首先我們需要建立XmlHttpRequest對象 。當然由於一些原因,瀏覽器安全色性問題,建立方式不同

    我們首先建立一個支援多瀏覽器的 XMLHttpRequest 對象

    <script type="text/javascript">        var xmlHttp = false;  //這個聲明成什麼都無所謂啦        try {            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");        } catch (e1) {            try {                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");            } catch (e2) {                xmlHttp = false;            }        }        if (!xmlHttp && typeof XMLHttpRequest!='undefined') {            xmlHttp = new XMLHttpRequest();        }    </script>

 

     然後我們寫好了這個,大家可以自己把他寫到一個 function中去

    下面我們繼續  寫完成  我們的第一個例子    Ajax  你好   呵呵 夠俗了吧

     為了完成這個 我們需要建立一個一般處理常式

    

然後我們在一般處理常式當中寫上如下的簡單代碼

 

public void ProcessRequest(HttpContext context)      {          context.Response.ContentType = "text/html";          context.Response.Write(DateTime.Now.ToString());      }

好了下面開始我們的主要任務

<head>    <title></title>    <script type="text/javascript">        var xmlHttp = false;  //這個聲明成什麼都無所謂啦        try {            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");        } catch (e1) {            try {                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");            } catch (e2) {                xmlHttp = false;            }        }        if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {            xmlHttp = new XMLHttpRequest();        }        function getAjax() {            xmlHttp.open("GET", "Ajax.ashx");            xmlHttp.onreadystatechange = function () {                if (xmlHttp.readyState == 4 && xmlHttp.status ==200) {                    alert(xmlHttp.responseText);                }            }            xmlHttp.send();        }    </script></head><body>  <input type="button" value="單擊我顯示時間" onclick="getAjax();" /></body></html>

上面的代碼就是特別簡單的一個例子了 

我給大家簡單的說明一下

xmlHttp.open("GET", "Ajax.ashx");    這句話中  包含的幾個要點  第一 “GET” 這個是得到資料的一種方式  ,當然常見的也有 “POST”

其實還有幾種,我記得好像是有7種 (HEAD,PUT,DELETE,OPTION,TRACE)這些方法大家可以自己去尋找資料都是幹神馬的,我就不詳細說明了。

後面是請求的路徑,當然你可以請求一個URL的地址。

其實後面還有第三個參數,是設定非同步作業還是同步操作的,這個我們以後再說。

onreadystatechange:

當請求被發送到伺服器時,我們需要執行一些基於響應的任務。

簡單點說就是

每當 readyState 改變時,就會觸發 onreadystatechange 事件。

還有 onreadystatechange 只是一個屬性名稱,而不是函數名稱,這裡其實是建立了一個匿名函數

readyState:

表示的是當前的對象狀態【他有五個值】

0: uninitialized,  【請求未初始化】

1: loading,          【伺服器串連已建立】

2: loaded,           【請求已接收】

3: interactive,     【請求處理中】

4: complete。    【請求已完成,且響應已就緒】

status:

HTTP響應狀態代碼  具體的可以去Google上面找

我簡單的舉幾個例子

403 Forbidden,

404 Not Found,【你懂的】

200正常返回 

所以我們需要滿足這兩個條件。

 

好了,剩下的就交給

xmlHttp.responseText 去讀取吧。

 

哦了,第一節課就到這裡了,講解的不好,還望大家海涵,我會繼續寫下去的,謝謝!

 

對了,大家可以試一下 頁面上面嵌入一個 視頻,然後再調用 Alert()時間 ,看看那個視頻會中斷嗎?(*^__^*) 嘻嘻……  傳說中的無重新整理

相關文章

聯繫我們

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