浅谈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 调用父窗口的具体实现代码
Jul 15 Javascript
Node.js中对通用模块的封装方法
Jun 06 Javascript
JavaScript合并两个数组并去除重复项的方法
Jun 13 Javascript
浅谈Javascript中substr和substring的区别
Sep 30 Javascript
js滑动提示效果代码分享
Mar 10 Javascript
基于JS代码实现实时显示系统时间
Jun 16 Javascript
angular.js分页代码的实例
Jul 27 Javascript
JavaScript中的冒泡排序法
Aug 03 Javascript
Vue.js实现简单ToDoList 前期准备(一)
Dec 01 Javascript
基于Vue的ajax公共方法(详解)
Jan 20 Javascript
Vue.js更改调试地址端口号的实例
Sep 19 Javascript
17道题让你彻底理解JS中的类型转换
Aug 08 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
JS实现php的伪分页
2008/05/25 PHP
服务器上配置PHP运行环境教程
2015/02/12 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
javascript学习基础笔记之DOM对象操作
2011/11/03 Javascript
js加强的经典分页实例
2013/03/15 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
2014/07/23 Javascript
javascript中函数作为参数调用的方法
2015/02/09 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
Bootstrap登陆注册页面开发教程
2016/07/12 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
详谈JS中数组的迭代方法和归并方法
2017/08/11 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
vue中slot(插槽)的介绍与使用
2018/11/12 Javascript
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
JS表格的动态操作完整示例
2020/01/13 Javascript
JavaScript console的使用方法实例分析
2020/04/28 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
讲解Python中的标识运算符
2015/05/14 Python
Python算法应用实战之栈详解
2017/02/04 Python
python实现二分查找算法
2017/09/21 Python
简单实现python画圆功能
2018/01/25 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
Python常见数字运算操作实例小结
2019/03/22 Python
浅谈Python访问MySQL的正确姿势
2020/01/07 Python
Python读写压缩文件的方法
2020/07/30 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
css3制作动态进度条以及附加jQuery百分比数字显示
2012/12/13 HTML / CSS
销售自荐信
2013/10/22 职场文书
周年庆典邀请函范文
2014/01/23 职场文书
感恩寄语大全
2014/04/11 职场文书
关于旅游的活动方案
2014/08/15 职场文书
聘任协议书(挂靠)
2015/09/21 职场文书
公司董事任命书
2015/09/21 职场文书
写给汽车4S店的创业计划书,拿来即用!
2019/08/09 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL