Ajax基礎知識入門,適合新手

來源:互聯網
上載者:User

      一直很想學習AJAX,感覺他能很好的提高使用者體驗,能夠做出更棒的網路應用程式,於是就上網找了一些相關的資料,對AJAX有了個初步的瞭解~

  AJAX (非同步 JavaScript 和 XML) 是個新產生的術語,專為描述JavaScript的兩項強大效能.這兩項效能在多年來一直被網路開發人員所忽略,直到最近Gmail, Google suggest和google Maps的橫空出世才使人們開始意識到其重要性.

  這兩項被忽視的效能是:
  無需重新裝載整個頁面便能向伺服器發送請求.
  對XML文檔的解析和處理.

步驟 1 – "請!" --- 如何發送一個HTTP請求

  為了用JavaScript向伺服器發送一個HTTP請求, 需要一個具備這種功能的類執行個體. 這樣的類首先由Internet EXPlorer以ActiveX對象引入, 被稱為XMLHTTP. 後來Mozilla, Safari 和其他瀏覽器紛紛仿效, 提供了XMLHttpRequest類,它支援微軟的ActiveX對象所提供的方法和屬性.

  因此, 為了建立一個跨瀏覽器的這樣的類執行個體(對象), 可以應用如下代碼:

if (window.XMLHttpRequest) { // Mozilla, Safari, ...
    http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE
    http_request = new ActiveXObject("Microsoft.XMLHTTP");
}

  (上例對代碼做了一定簡化,這是為瞭解釋如何建立XMLHTTP類執行個體. 實際的代碼執行個體可參閱本篇步驟3.)

  如果伺服器的響應沒有XML mime-type header,某些Mozilla瀏覽器可能無法正常工作. 為瞭解決這個問題, 如果伺服器響應的header不是text/xml,可以調用其它方法修改該header.

http_request = new XMLHttpRequest();
http_request.overrideMimeType('text/xml');

  接下來要決定當收到伺服器的響應後,需要做什麼.這需要告訴HTTP請求對象用哪一個JavaScript函數處理這個響應.可以將對象的onreadystatechange屬性設定為要使用的JavaScript的函數名,如下所示:

http_request.onreadystatechange = nameOfTheFunction;

  注意:在函數名後沒有括弧,也無需傳遞參數.另外還有一種方法,可以在扉頁(fly)中定義函數及其對響應要採取的行為,如下所示:

http_request.onreadystatechange = function(){
    // do the thing
};

  在定義了如何處理響應後,就要發送請求了.可以調用HTTP請求類的open()和send()方法, 如下所示:

http_request.open('GET', 'http://www.example.org/some.file', true);
http_request.send(null);

  open()的第一個參數是HTTP請求方式 – GET, POST, HEAD 或任何伺服器所支援的您想調用的方式. 按照HTTP規範,該參數要大寫;否則,某些瀏覽器(如Firefox)可能無法處理請求.

相關文章

聯繫我們

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