浅谈jQuery异步对象(XMLHttpRequest)
作者:bea
我们先来看看异步对象五部曲 这是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设置回调
我们先来看看异步对象五部曲
这是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)的理解,如有遗漏,麻烦联系我,补充上。
有用 | 无用
这是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)的理解,如有遗漏,麻烦联系我,补充上。
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 实现图片预加载的三大方法及优缺点分析
- jQuery Ajax()方法使用指南
- javascript匿名函数实例分析
- Linux下使用jq友好的打印JSON技巧分享
- 删除Javascript Object中间的key
- 如何在MVC应用程序中使用Jquery
- Jquery实现仿腾讯微博发表广播
- JavaScript数组常用操作技巧汇总
- jquery 实现返回顶部功能
- 超棒的响应式布局jQuery插件Freetile.js
- jQuery Masonry瀑布流插件使用详解
- javascript将url中的参数加密解密代码
- PHP使用方法重载实现动态创建属性的get和set方法
- JavaScript函数详解
- 提升PHP安全:8个必须修改的PHP默认配置
- 详解Javascript 装载和执行
- nodejs开发环境配置与使用
- jQuery带箭头提示框tooltips插件集锦
- JavaScript实现的内存数据库LokiJS介绍和入门实例