浅谈jQuery异步对象(XMLHttpRequest)

 更新时间:2014年11月17日 09:09:07   投稿:hebedich  
文章浅显易懂的将jQuery异步对象分为了5个步奏,非常有利于我们学习记忆,是篇相当不错的学习jQuery异步对象的文章,这里推荐给大家。

我们先来看看异步对象五部曲

这是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)的理解,如有遗漏,麻烦联系我,补充上。

相关文章

  • 使用Vite从零搭建前端项目的详细过程

    使用Vite从零搭建前端项目的详细过程

    这篇文章主要介绍了使用Vite从零搭建前端项目的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • countUp.js实现数字动态变化效果

    countUp.js实现数字动态变化效果

    这篇文章主要为大家详细介绍了countUp.js实现数字动态变化效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • JavaScript中工厂函数与构造函数示例详解

    JavaScript中工厂函数与构造函数示例详解

    这篇文章主要给大家介绍了关于JavaScript中工厂函数与构造函数的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用JavaScript具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • js实现日历与定时器

    js实现日历与定时器

    本文主要介绍了js实现日历与定时器的示例代码,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • JavaScript为事件句柄绑定监听函数实例详解

    JavaScript为事件句柄绑定监听函数实例详解

    这篇文章主要介绍了JavaScript为事件句柄绑定监听函数的方法,结合实例详细分析了常见的事件句柄绑定监听函数的实现技巧,并实例讲解了跨浏览器的实现方法,需要的朋友可以参考下
    2015-12-12
  • ES6字符串模板,剩余参数,默认参数功能与用法示例

    ES6字符串模板,剩余参数,默认参数功能与用法示例

    这篇文章主要介绍了ES6字符串模板,剩余参数,默认参数功能与用法,结合具体实例形式分析了ECMAScript6中的6字符串模板,剩余参数,默认参数的概念、作用、使用方法与相关注意事项,需要的朋友可以参考下
    2017-04-04
  • 奇偶行高亮显示及鼠标划过高亮显示类

    奇偶行高亮显示及鼠标划过高亮显示类

    奇或偶数行高亮显示及鼠标莫过高亮显示,一个经常用到的效果,也能谷歌到大把的这种效果JS,但好像还没有一个封装成类直接用的.想象自己当初谷歌这个类时,还真没少折腾时间.
    2010-07-07
  • JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例

    JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例

    下面小编就为大家带来一篇JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • layui 富文本图片上传接口与普通按钮 文件上传接口的例子

    layui 富文本图片上传接口与普通按钮 文件上传接口的例子

    今天小编就为大家分享一篇layui 富文本图片上传接口与普通按钮 文件上传接口的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • JS监听变量改变的实现

    JS监听变量改变的实现

    本文主要介绍了JS监听变量改变的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04

最新评论