首頁 > web前端 > js教程 > 淺談jQuery非同步物件(XMLHttpRequest)_javascript技巧

淺談jQuery非同步物件(XMLHttpRequest)_javascript技巧

WBOY
發布: 2016-05-16 16:31:08
原創
1483 人瀏覽過

我們先來看看非同步物件五部曲

這是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");

是為了傳輸方式

中的type可以得到三種方式,其中包括application/x-www-form-urlencoded
 

複製程式碼 程式碼如下:

var ajaxHelp = {
    CreateXHR: 函數 () {
        //建立物件
        var xhr = new XMLHttpRequest();
        返回 xhr;
    },
    //ajax的get請求
    AjaxGet: 函數 (url, 回呼) {
        this.AJaxCommon("get", url, null, callBack);
    },
    //ajax的post請求
    AjaxPost:函數(url、參數、callBack){
        this.AJaxCommon("post", url, params, callBack);
    },
    AJaxCommon:函數(方法、url、參數、回呼){
        //1.0
        var xhr = this.CreatXHR();
        //2.0
        xhr.open(方法, url, true);
        //3.0
        if (方法==「取得」) {
            xhr.setRequestHeader("If-Modified-Since", "0");
        } 其他 {
            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);
                //執行回呼函數
                回調(資料);
            }
        }
        //5.0
        xhr.send(params);
    }
};

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

以上是本人對於jQuery非同步物件(XMLHttpRequest)的理解,如有遺漏,麻煩聯絡我,補充上。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板