浅谈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 相关文章推荐
JavaScript函数、方法、对象代码
Oct 29 Javascript
Span元素的width属性无效果原因及解决方案
Jan 15 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
Aug 25 Javascript
javascript动态的改变IFrame的高度实现自动伸展
Oct 12 Javascript
删除javascript所创建子节点的方法
May 21 Javascript
bootstrap实现图片自动轮播
Dec 21 Javascript
js/jq仿window文件夹移动/剪切/复制等操作代码
Mar 08 Javascript
原生JS写Ajax的请求函数功能
Dec 22 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
Dec 25 Javascript
原生JS实现网页手机音乐播放器 歌词同步播放的示例
Feb 02 Javascript
vue2.0模拟锚点的实例
Mar 14 Javascript
JS如何监听div的resize事件详解
Dec 03 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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
PHP使用mysql_fetch_object从查询结果中获取对象集的方法
2015/03/18 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
php 可变函数使用小结
2018/06/12 PHP
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
2016/07/04 Javascript
只要1K 纯JS脚本送你一朵3D红色玫瑰
2016/08/09 Javascript
浅谈JavaScript 覆盖原型以及更改原型
2016/08/31 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
2018/08/16 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
简单了解Javscript中兄弟ifream的方法调用
2019/06/17 Javascript
java遇到微信小程序 &quot;支付验证签名失败&quot; 问题解决
2019/12/22 Javascript
Python 代码性能优化技巧分享
2012/08/07 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
2016/06/14 Python
Python unittest 简单实现参数化的方法
2018/11/30 Python
Python数据预处理之数据规范化(归一化)示例
2019/01/08 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
Django框架之DRF 基于mixins来封装的视图详解
2019/07/23 Python
python字符串分割及字符串的一些常规方法
2019/07/24 Python
Django框架model模型对象验证实现方法分析
2019/10/02 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
艺术用品:Arteza
2018/11/25 全球购物
求职信的要素有哪些呢
2013/12/26 职场文书
邮政员工辞职信
2014/01/16 职场文书
母亲节感恩寄语
2014/02/21 职场文书
企业精细化管理实施方案
2014/03/23 职场文书
群众路线教育实践活动实施方案
2014/10/31 职场文书
社会实践活动报告
2015/02/05 职场文书
保姆聘用合同
2015/09/21 职场文书
Golang 实现 WebSockets 之创建 WebSockets
2022/04/24 Golang