DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> jQuery入門知識 >> JQuery特效代碼 >> 淺談jQuery異步對象(XMLHttpRequest)
淺談jQuery異步對象(XMLHttpRequest)
編輯:JQuery特效代碼     

我們先來看看異步對象五部曲

這是post請求的、

代碼如下:
 //1.00創建異步對象
            var xhr = new XMLHttpRequest();
            //2.0
            xhr.open("post", url,params, true);
            //3.0將參數使用Formdata屬性傳遞
            xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
            //4.0設置回調函數
            xhr.onreadystatechange = function () {
                if (xhr.readyState == 4 && xhr.status == 200) {
                    alert(xhr.responseText);
                }
            }
            //5.0傳遞參數
            xhr.send(params);

結合get請求做一個異步對象的封裝

get 請求中的

  xhr.setRequestHeader("If-Modified-Since", "0"); 是為了清除緩存

而post請求的

代碼如下:
 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

是為了傳輸方式
在<from method='post' type="">
<from>中的type可以得到三種方式,其中包括application/x-www-form-urlencoded
 
代碼如下:
var ajaxHelp = {
    CreatXHR: function () {
        //創建異步對象
        var xhr = new XMLHttpRequest();
        return xhr;
    },
    //ajax的get請求
    AjaxGet: function (url, callBack) {
        this.AJaxCommon("get", url, null, callBack);
    },
    //ajax的post請求
    AjaxPost: function (url, params, callBack) {
        this.AJaxCommon("post", url, params, callBack);
    },
    AJaxCommon: function (method, url, params, callBack) {
        //1.0
        var xhr = this.CreatXHR();
        //2.0
        xhr.open(method, url, true);
        //3.0
        if (method == "get") {
            xhr.setRequestHeader("If-Modified-Since", "0");
        } else {
            xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        }
        //4.0
        xhr.onreadystatechange = function () {
            if (xhr.readyState == 4 && xhr.status == 200) {
                var datas = JSON.parse(xhr.responseText);
                //執行回調函數
                callBack(datas);
            }
        }
        //5.0
        xhr.send(params);
    }
};

ps:在JQuery裡面是有$.ajax  和$.get /   $.Post  等異步請求的方法的。以前的封裝就不用了。額。好扯。其實他們底層也是這樣的寫的呢。JQuery就是為了解決各個浏覽器的兼容性問題而已

以上就是本人對於jQuery異步對象(XMLHttpRequest)的理解,如有遺漏,麻煩聯系我,補充上。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved