浅谈jQuery异步对象(XMLHttpRequest)


Posted in Javascript onNovember 17, 2014

我们先来看看异步对象五部曲

这是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)的理解,如有遗漏,麻烦联系我,补充上。

Javascript 相关文章推荐
JS 遮照层实现代码
Mar 31 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
Nov 25 Javascript
JS操作图片(增,删,改) 例子
Apr 17 Javascript
jquery得到iframe src属性值的方法
Sep 25 Javascript
JavaScript常用小技巧小结
Dec 29 Javascript
jQuery、zepto、js常用小技巧
Feb 12 Javascript
Vue.js实现价格计算器功能
Mar 30 Javascript
解决Vue编译时写在style中的路径问题
Sep 21 Javascript
解决JavaScript layui 下拉框不显示的问题
Aug 14 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
Sep 18 Javascript
vue.js实现备忘录demo
Jun 26 Javascript
微信小程序实现简单的select下拉框
Nov 23 Javascript
node.js中watch机制详解
Nov 17 #Javascript
z-blog SyntaxHighlighter 长代码无法换行解决办法(jquery)
Nov 16 #Javascript
js构造函数、索引数组和属性的实现方式和使用
Nov 16 #Javascript
JQuery表单验证插件EasyValidator用法分析
Nov 15 #Javascript
不到30行JS代码实现Excel表格的方法
Nov 15 #Javascript
Node.js中HTTP模块与事件模块详解
Nov 14 #Javascript
jquery中append()与appendto()用法分析
Nov 14 #Javascript
You might like
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
php 伪静态之IIS篇
2014/06/02 PHP
PHP实现的下载远程图片自定义函数分享
2015/01/28 PHP
详解WordPress中调用评论模板和循环输出评论的PHP函数
2016/01/05 PHP
Laravel 5.3 学习笔记之 安装
2016/08/28 PHP
PHP封装的多文件上传类实例与用法详解
2017/02/07 PHP
ThinkPHP实现分页功能
2017/04/28 PHP
myFocus slide3D v1.1.0 使用方法与下载
2011/01/12 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
AngularJs实现ng1.3+表单验证
2015/12/10 Javascript
不得不分享的JavaScript常用方法函数集(下)
2015/12/25 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
2016/09/19 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
js 获取元素的具体样式信息getcss(实例讲解)
2017/07/05 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
vue中接口域名配置为全局变量的实现方法
2018/09/20 Javascript
vue-resourc发起异步请求的方法
2020/02/11 Javascript
让python json encode datetime类型
2010/12/28 Python
Python元组常见操作示例
2019/02/19 Python
详解Django项目中模板标签及模板的继承与引用(网站中快速布置广告)
2019/03/27 Python
Python pandas.DataFrame 找出有空值的行
2019/09/09 Python
python读取当前目录下的CSV文件数据
2020/03/11 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
有趣的睡衣和礼物:LazyOne
2019/11/27 全球购物
飞利浦美国官网:Philips美国
2020/02/28 全球购物
中间件分为哪几类
2016/09/18 面试题
酒店管理自荐信
2013/10/23 职场文书
安全生产检查通报
2014/01/29 职场文书
2014年个人委托书范本
2014/10/13 职场文书
2015年乡镇发展党员工作总结
2015/03/31 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
vue自定义右键菜单之全局实现
2022/04/09 Vue.js
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL