AJAX執行個體:XHR的入門

來源:互聯網
上載者:User

XHR對象的使用是 AJAX 的核心。為了學習的方便,在編寫代碼過程中沒有用服務端開發的部分,Web前端開發與服務端開發的結合處在於“響應資料”(如XML)。 XML部分我直接寫好已放在伺服器了,重點不在服務端程式如何去從資料庫調出相應的資料的內容。

一個很簡單的樣本:點擊“查看”按鈕,使用者名稱(username)顯示在網頁中。

HTML代碼:

1<label>使用者名稱</label>
2<span>username 值</span>
3<a href="#" onclick="ajaxread('3.xml', ''); return false;">查看</a>

XML代碼:

1<?xml version="1.0" encoding="gb2312"?>
2<root>
3    <username>
4        george wing
5    </username>
6</root>

 

Javascript代碼:

1function ajaxread(file, postData) {
2    var req = createXMLHTTPObject();
3    if(!req) return;
4    req.onreadystatechange = function() {
5        if (req.readyState != 4) return;
6        if (req.status != 200 && req.status != 304) {
7            alert('HTTP error ' + req.status);
8            return;
9        }
10       
11        updateobj('span', req.responseXML.getElementsByTagName('username')[0].firstChild.nodeValue);
12    }
13    req.open('GET', file, true);
14    req.setRequestHeader('User-Agent','XMLHTTP/1.0');
15    if (req.readyState == 4) return;
16    req.send(postData);
17}
18function updateobj(obj, data) {
19    document.getElementsByTagName(obj)[0].firstChild.nodeValue = data;
20}
21
22var XMLHttpFactories = [
23    function() {return new XMLHttpRequest()},
24    function () {return new ActiveXObject("Msxml2.XMLHTTP")},
25    function () {return new ActiveXObject("Msxml3.XMLHTTP")},
26    function () {return new ActiveXObject("Microsoft.XMLHTTP")},
27];
28
29function createXMLHTTPObject() {
30    var xmlhttp = false;
31    for(i=0; i<XMLHttpFactories.length; i++) {
32        try {
33            xmlhttp = XMLHttpFactories[i]();
34        }
35        catch(e) {
36            continue;
37        }
38        break;
39    }
40    return xmlhttp;
41}

學會AJAX的關鍵是XHR對象的使用,另外還需要HTTP的知識。

(完)

AJAX 系列blog文章:

AJAX 執行個體:ASP.NET 服務端的XML處理

Ajax:用非同步回調對ASP.NET 開發重構執行個體

AJAX執行個體:ASP.NET中的文本及包括JSON響應處理

相關文章

聯繫我們

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