浅谈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 相关文章推荐
在你的网页中嵌入外部网页的方法
Apr 02 Javascript
JS获取随机数函数可自定义最小值最大值
May 08 Javascript
js制作简易年历完整实例
Jan 28 Javascript
javascript对象的相关操作小结
May 16 Javascript
DOM 事件的深入浅出(一)
Dec 05 Javascript
js+div+css下拉导航菜单完整代码分享
Dec 28 Javascript
在vue项目中使用Nprogress.js进度条的方法
Jan 31 Javascript
JS实现图片轮播效果实例详解【可自动和手动】
Apr 04 Javascript
微信小程序全局变量的设置、使用、修改过程解析
Sep 24 Javascript
Vue数字输入框组件使用方法详解
Feb 10 Javascript
基于ant design日期控件使用_仅月份的操作
Oct 27 Javascript
Ant Design Pro 之 ProTable使用操作
Oct 31 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执行sql语句的写法
2009/03/10 PHP
eAccelerator的安装与使用详解
2013/06/13 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
原生js实现百叶窗效果及原理介绍
2016/04/12 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
2017/09/10 Javascript
解决vue多个路由共用一个页面的问题
2018/03/12 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
JS/HTML5游戏常用算法之碰撞检测 地图格子算法实例详解
2018/12/12 Javascript
django中使用vue.js的要点总结
2019/07/07 Javascript
Vue3.x源码调试的实现方法
2019/10/13 Javascript
[03:11]TI9战队档案 - Alliance
2019/08/20 DOTA
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
2017/11/02 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
python 使用socket传输图片视频等文件的实现方式
2019/08/07 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
tensorflow实现训练变量checkpoint的保存与读取
2020/02/10 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
中国跨境在线时尚零售商:Bellelily
2018/04/06 全球购物
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
借款担保书范文
2014/05/13 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
广告学专业求职信
2014/06/19 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
学生个人总结范文
2015/02/15 职场文书
父亲去世追悼词
2015/06/23 职场文书
古诗之感恩老师
2019/10/24 职场文书
Oracle中update和select 关联操作
2022/01/18 Oracle
千万级用户系统SQL调优实战分享
2022/03/03 MySQL