淺談jQuery異步對象(XMLHttpRequest)
我們先來看看異步對象五部曲
這是post請求的、
//1.00創(chuàng)建異步對象
var xhr = new XMLHttpRequest();
//2.0
xhr.open("post", url,params, true);
//3.0將參數(shù)使用Formdata屬性傳遞
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
//4.0設(shè)置回調(diào)函數(shù)
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
alert(xhr.responseText);
}
}
//5.0傳遞參數(shù)
xhr.send(params);
結(jié)合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 () {
//創(chuàng)建異步對象
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);
//執(zhí)行回調(diào)函數(shù)
callBack(datas);
}
}
//5.0
xhr.send(params);
}
};
ps:在JQuery里面是有$.ajax 和$.get / $.Post 等異步請求的方法的。以前的封裝就不用了。額。好扯。其實他們底層也是這樣的寫的呢。JQuery就是為了解決各個瀏覽器的兼容性問題而已
以上就是本人對于jQuery異步對象(XMLHttpRequest)的理解,如有遺漏,麻煩聯(lián)系我,補充上。
相關(guān)文章
JavaScript模擬可展開、拖動與關(guān)閉的聊天窗口實例
這篇文章主要介紹了JavaScript模擬可展開、拖動與關(guān)閉的聊天窗口,實例分析了javascript實現(xiàn)可拖動的div層相關(guān)技巧,非常具有實用價值,需要的朋友可以參考下2015-05-05javascript正則表達式參數(shù)/g與/i及/gi的使用指南
正則表達式:是對字符串操作的一種邏輯公式,用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達對字符串的一種過濾邏輯2014-08-08Area 區(qū)域?qū)崿F(xiàn)post提交數(shù)據(jù)的js寫法
這篇文章主要介紹了在Area區(qū)域的里 實現(xiàn)post 提交數(shù)據(jù) 的js寫法,需要的朋友可以參考下2014-04-04JavaScript實現(xiàn)的select點菜功能示例
這篇文章主要介紹了JavaScript實現(xiàn)的select點菜功能,涉及javascript動態(tài)操作頁面元素及元素遍歷相關(guān)技巧,需要的朋友可以參考下2017-01-01JS觸發(fā)事件event.target VS event.currentTarget實例
這篇文章主要介紹了JS觸發(fā)事件event.target VS event.currentTarget實例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10