《Ajax基礎教程》

來源:互聯網
上載者:User

建立XMLHttpRequest對象的一個執行個體(只需要檢測瀏覽器是否支援ActiveX控制項)

    var xmlHttp;

    function createXMLHttpRequest()

    {

        if(window.ActiveXObject)

        {

            xmlHttp = new ActiveXObject("Microsoft.XMLHttp");

        }

        else if(window.XMLHttpRequest)

        {

            xmlHttp = new XMLHttpRequest();

        }

    }

XMLHttpRequest不能請求指令碼所在域之外的資源

XMLHttpRequest將請求發送給伺服器

    XMLHttpRequest對象的send()方法把請求發送到指定的目標資源。send()方法接受一個參數,通常是一個串或一個DOM對象。這個參數作為請求體的一部分發送到目標URL。當向send()方法提供參數時,要確保open()中指定的方法是POST。

如果沒有資料作為請求體的一部分被發送,則使用null。

    一般情況下,使用Ajax提交的參數多是些簡單的字串,可以直接使用GET方法將要提交的參數寫到open方法的url參數中,此時send方法的參數為null。

    例如 :

                 var url = "login.jsp?user=XXX&pwd=XXX";

                 xmlHttpRequest.open("GET",url,true);

                 xmlHttpRequset.send(null);

   

    此外,也可以使用send方法傳遞參數。使用send方法傳遞參數使用的是POST方法,需要設定Content-Type頭資訊,類比HTTP POST方法發送一個表單,這樣伺服器才會知道如何處理上傳的內容。參數的提交格式和GET方法中url的寫法一樣。設定頭資訊前必須先調用open方法。

   

    例如:

                xmlHttpRequest.open("POST","login.jsp",true);

                xmlHttpRequest.setRequestHeder("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");

                xmlHttpRequest.send("user="+username+"&pwd="+password);

   

    需要注意的是根據提交方式的不同,兩種提交方式分別調用背景doGet方法和doPost方法。

在請求URL時加上時間戳記的好處:

    在有些情況下某些瀏覽器會把XMLHttpRequest請求的結果緩衝在同一個URL上.但是實際上雖然對相同URL的請求在不同時間也會有不同的結果.當把時間戳記追加到URL的最後,就能夠確保URL的唯一性,從而避免瀏覽器緩衝結果.

利用XMLHttpRequest的post方法可以在請求體中發送各種內容(XML,位元據)

使用JSON來傳輸資料.JSON是一種文字格式設定,獨立於具體語言,可以將資料結構進行序列化.

最佳實務

:在用戶端編寫的每一個驗證常式都必須在伺服器上以某種方式重寫,因為使用者可能禁用javascript.

讀取相應頭部

    某些情況下我們只想讀取伺服器發出的響應首部,而忽略內容。,完成這樣一個請求的標準做法是使用HEAD請求,而不是前面討論的GET或POST請求。當伺服器對HEAD請求做出響應時,它只發送響應首部而忽略內容,即使可以向瀏覽器返回所請求的內容,也不會真的把內容返回。由於忽略了內容,對HEAD請求的響應比對GET或POST的響應就小得多。

    通過讀取響應首部,可以得出Content-Type(內容類型)、Content-Length

(內容長度),甚至Last-Modified(最後一次修改)的日期。

    實現方式:在Open的第一個參數設定為"HEAD".xmlHttp.open("HEAD",url,true);

    getAllResponseHeaders()方法的用途很有限,因為它把所有響應首部放在一起作為串返回。要想使用getAllResponseHeaders()方法來擷取單個的響應首部,就需要解析返回的串,尋找所關注的響應首部。

    getResponseHeader方法可以通過只返回一個響應首部的值解決這個問題。這個方

法取一個串參數,該參數表示所需響應首部的名字(就是你想得到這個響應首部

的值)。

Firefox工具

    HTML Validator 尋找並標誌出HTML頁面上的錯誤
    webdeveloper
    Greasemonkey
    Venkman
其他工具

    JSLint(網頁) 完成JavaScript語法檢查
    JSUnit(javascript單元測試) 用於測試JavaScript。

AJAX架構

    qooxdoo,jQuery,Mootools,Dojo,Ext JS

No1—Prototype
No2—Dojo
No3—Mootools
No4—JQuery
No5—Dwr
No6—Buffalo
No7—Yui
No8—Ext
No9—Qooxdoo
No10—Spry

誰是你心目中最優秀的Ajax架構?--CSDN專題

相關文章

聯繫我們

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