浅谈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 相关文章推荐
短信提示使用 特效
Jan 19 Javascript
jQuery UI Dialog控件中的表单无法正常提交的解决方法
Dec 19 Javascript
按钮JS复制文本框和表格的代码
Apr 01 Javascript
javascript实现tab切换的两个实例
Nov 05 Javascript
详解Bootstrap四种图片样式
Jan 04 Javascript
轻松搞定jQuery.noConflict()
Feb 15 Javascript
jquery基本选择器匹配多个元素的实现方法
Sep 05 Javascript
基于JavaScript实现图片剪切效果
Mar 07 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
Nov 19 Javascript
JavaScript设计模式之缓存代理模式原理与简单用法示例
Aug 07 Javascript
Vue.set 全局操作简单示例
Sep 19 Javascript
layer扩展打开/关闭动画的方法
Sep 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
真正面向对象编程:PHP5.01发布
2006/10/09 PHP
php邮件发送,php发送邮件的类
2011/03/24 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
利用location.hash实现跨域iframe自适应
2010/05/04 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
JS深度拷贝Object Array实例分析
2016/03/31 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
js实现抽奖效果
2017/03/27 Javascript
详解Node.js实现301、302重定向服务
2017/04/07 Javascript
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
vue组件(全局,局部,动态加载组件)
2018/09/02 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
微信小程序时间戳转日期的详解
2019/04/30 Javascript
微信小程序实现录音时的麦克风动画效果实例
2019/05/18 Javascript
[02:31]2014DOTA2国际邀请赛2009专访:干爹表现出乎意料 看好DK杀回决赛
2014/07/20 DOTA
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
利用Python如何批量修改数据库执行Sql文件
2018/07/29 Python
详解Django模版中加载静态文件配置方法
2019/07/21 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
2020/03/30 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
用Python开发app后端有优势吗
2020/06/29 Python
python GUI计算器的实现
2020/10/09 Python
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
工作疏忽检讨书
2014/01/25 职场文书
中学教师师德承诺书
2014/05/23 职场文书
酒店节能减排方案
2014/05/26 职场文书
运动会宣传口号
2014/06/09 职场文书
学生会干部任命书
2015/09/21 职场文书
MySQL读取JSON转换的方式
2022/03/18 MySQL