浅谈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 继承详解(二)
Jul 13 Javascript
AngularJS入门知识之MVW类框架的编程思想探讨
Dec 08 Javascript
javascript数组去重的六种方法汇总
Aug 16 Javascript
javascript自动恢复文本框点击清除后的默认文本
Jan 12 Javascript
简单实现js页面切换功能
Jan 10 Javascript
原生JS封装animate运动框架的实例
Oct 12 Javascript
vue 运用mock数据的示例代码
Nov 07 Javascript
基于js 各种排序方法和sort方法的区别(详解)
Jan 03 Javascript
angularJS的radio实现单项二选一的使用方法
Feb 28 Javascript
vue mint-ui tabbar变组件使用
May 04 Javascript
Vue数字输入框组件的使用方法
Oct 19 Javascript
Jquery使用each函数实现遍历及数组处理
Jul 14 jQuery
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
AJAX for PHP简单表数据查询实例
2007/01/02 PHP
javascript中删除指定数组中指定的元素的代码
2011/02/12 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
web的各种前端打印方法之jquery打印插件PrintArea实现网页打印
2013/01/09 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
ionic js 复选框 与普通的 HTML 复选框到底有没区别
2016/06/06 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
angular select 默认值设置方法
2017/06/23 Javascript
JS中Map和ForEach的区别
2018/02/05 Javascript
vue的全局变量和全局拦截请求器的示例代码
2018/09/13 Javascript
vue-cli3 配置开发与测试环境详解
2019/05/17 Javascript
实例分析JS中的相等性判断===、 ==和Object.is()
2019/11/17 Javascript
javascript中layim之查找好友查找群组
2021/02/06 Javascript
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
简介二分查找算法与相关的Python实现示例
2015/08/26 Python
Python之使用adb shell命令启动应用的方法详解
2019/01/07 Python
DRF跨域后端解决之django-cors-headers的使用
2019/01/27 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
python根据文本生成词云图代码实例
2019/11/15 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
Python接口测试文件上传实例解析
2020/05/22 Python
python归并排序算法过程实例讲解
2020/11/04 Python
Python descriptor(描述符)的实现
2020/11/15 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
解决pytorch 模型复制的一些问题
2021/03/03 Python
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
Tessabit美国:集世界奢侈品和设计师品牌的意大利精品买手店
2020/06/29 全球购物
Aurora London官网:奢华、负担得起的皮革手袋
2020/08/01 全球购物
董事长职责范文
2013/11/08 职场文书
个人简历自我评价
2014/01/06 职场文书
网络书店创业计划书
2014/02/07 职场文书
北京奥运会口号
2014/06/21 职场文书
店长岗位职责
2015/02/11 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
python使用torch随机初始化参数
2022/03/22 Python