浅谈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 getBoundingClientRect() 来获取页面元素的位置
Nov 25 Javascript
Javascript面向对象扩展库代码分享
Mar 27 Javascript
input标签内容改变的触发事件介绍
Jun 18 Javascript
Js为表单动态添加节点内容的方法
Feb 10 Javascript
Node.js包管理器Yarn的入门介绍与安装
Oct 17 Javascript
微信小程序遇到修改数据后页面不渲染的问题解决
Mar 09 Javascript
详解Vue-基本标签和自定义控件
Mar 24 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
Apr 26 Javascript
JavaScript类型相关的常用操作总结
Feb 14 Javascript
微信小程序canvas绘制圆角base64图片的实现
Aug 18 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
Apr 01 Javascript
JS封装cavans多种滤镜组件
Feb 15 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
Extjs Ajax 乱码问题解决方案
2009/04/15 Javascript
表单验证的完整应用案例探讨
2013/03/29 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
超级简单实现JavaScript MVC 样式框架
2015/03/24 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
2015/03/28 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
2015/08/01 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
AngularJS 让人爱不释手的八种功能
2016/03/23 Javascript
全面了解JS中的匿名函数
2016/06/29 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
Node.js Buffer用法解读
2018/05/18 Javascript
Vue 通过自定义指令回顾v-内置指令(小结)
2018/09/03 Javascript
详解iview的checkbox多选框全选时校验问题
2019/06/10 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
Python实现代码统计工具(终极篇)
2016/07/04 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
教你使用python画一朵花送女朋友
2018/03/29 Python
把csv文件转化为数组及数组的切片方法
2018/07/04 Python
Python学习笔记之抓取某只基金历史净值数据实战案例
2019/06/03 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
2019/07/06 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
美国在线鲜花速递:ProFlowers
2017/01/05 全球购物
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
企业演讲稿范文
2013/12/28 职场文书
英文留学推荐信范文
2014/01/25 职场文书
银行见习期自我鉴定
2014/01/29 职场文书
数学高效课堂实施方案
2014/03/29 职场文书
优秀班集体先进事迹材料
2014/05/28 职场文书
自我管理的活动方案
2014/08/25 职场文书
党员个人整改措施
2014/10/24 职场文书
python调试工具Birdseye的使用教程
2021/05/25 Python
Python 一键获取电脑浏览器的账号密码
2022/05/11 Python