html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

浅谈jQuery异步对象(XMLHttpRequest)_javascript技巧_

[ ] 已经帮助:人解决问题

我们先来看看异步对象五部曲8FNHTML5中文学习网 - HTML5先行者学习网

这是post请求的、8FNHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
8FNHTML5中文学习网 - HTML5先行者学习网
 //1.00创建异步对象8FNHTML5中文学习网 - HTML5先行者学习网
            var xhr = new XMLHttpRequest();8FNHTML5中文学习网 - HTML5先行者学习网
            //2.08FNHTML5中文学习网 - HTML5先行者学习网
            xhr.open("post", url,params, true);8FNHTML5中文学习网 - HTML5先行者学习网
            //3.0将参数使用Formdata属性传递8FNHTML5中文学习网 - HTML5先行者学习网
            xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");8FNHTML5中文学习网 - HTML5先行者学习网
            //4.0设置回调函数8FNHTML5中文学习网 - HTML5先行者学习网
            xhr.onreadystatechange = function () {8FNHTML5中文学习网 - HTML5先行者学习网
                if (xhr.readyState == 4 && xhr.status == 200) {8FNHTML5中文学习网 - HTML5先行者学习网
                    alert(xhr.responseText);8FNHTML5中文学习网 - HTML5先行者学习网
                }8FNHTML5中文学习网 - HTML5先行者学习网
            }8FNHTML5中文学习网 - HTML5先行者学习网
            //5.0传递参数8FNHTML5中文学习网 - HTML5先行者学习网
            xhr.send(params);8FNHTML5中文学习网 - HTML5先行者学习网
8FNHTML5中文学习网 - HTML5先行者学习网

结合get请求做一个异步对象的封装8FNHTML5中文学习网 - HTML5先行者学习网

get 请求中的8FNHTML5中文学习网 - HTML5先行者学习网

  xhr.setRequestHeader("If-Modified-Since", "0"); 是为了清除缓存8FNHTML5中文学习网 - HTML5先行者学习网

而post请求的8FNHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
8FNHTML5中文学习网 - HTML5先行者学习网
 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");8FNHTML5中文学习网 - HTML5先行者学习网
8FNHTML5中文学习网 - HTML5先行者学习网

是为了传输方式8FNHTML5中文学习网 - HTML5先行者学习网
在<from method='post' type="">8FNHTML5中文学习网 - HTML5先行者学习网
<from>中的type可以得到三种方式,其中包括application/x-www-form-urlencoded8FNHTML5中文学习网 - HTML5先行者学习网
 8FNHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
8FNHTML5中文学习网 - HTML5先行者学习网
var ajaxHelp = {8FNHTML5中文学习网 - HTML5先行者学习网
    CreatXHR: function () {8FNHTML5中文学习网 - HTML5先行者学习网
        //创建异步对象8FNHTML5中文学习网 - HTML5先行者学习网
        var xhr = new XMLHttpRequest();8FNHTML5中文学习网 - HTML5先行者学习网
        return xhr;8FNHTML5中文学习网 - HTML5先行者学习网
    },8FNHTML5中文学习网 - HTML5先行者学习网
    //ajax的get请求8FNHTML5中文学习网 - HTML5先行者学习网
    AjaxGet: function (url, callBack) {8FNHTML5中文学习网 - HTML5先行者学习网
        this.AJaxCommon("get", url, null, callBack);8FNHTML5中文学习网 - HTML5先行者学习网
    },8FNHTML5中文学习网 - HTML5先行者学习网
    //ajax的post请求8FNHTML5中文学习网 - HTML5先行者学习网
    AjaxPost: function (url, params, callBack) {8FNHTML5中文学习网 - HTML5先行者学习网
        this.AJaxCommon("post", url, params, callBack);8FNHTML5中文学习网 - HTML5先行者学习网
    },8FNHTML5中文学习网 - HTML5先行者学习网
    AJaxCommon: function (method, url, params, callBack) {8FNHTML5中文学习网 - HTML5先行者学习网
        //1.08FNHTML5中文学习网 - HTML5先行者学习网
        var xhr = this.CreatXHR();8FNHTML5中文学习网 - HTML5先行者学习网
        //2.08FNHTML5中文学习网 - HTML5先行者学习网
        xhr.open(method, url, true);8FNHTML5中文学习网 - HTML5先行者学习网
        //3.08FNHTML5中文学习网 - HTML5先行者学习网
        if (method == "get") {8FNHTML5中文学习网 - HTML5先行者学习网
            xhr.setRequestHeader("If-Modified-Since", "0");8FNHTML5中文学习网 - HTML5先行者学习网
        } else {8FNHTML5中文学习网 - HTML5先行者学习网
            xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");8FNHTML5中文学习网 - HTML5先行者学习网
        }8FNHTML5中文学习网 - HTML5先行者学习网
        //4.08FNHTML5中文学习网 - HTML5先行者学习网
        xhr.onreadystatechange = function () {8FNHTML5中文学习网 - HTML5先行者学习网
            if (xhr.readyState == 4 && xhr.status == 200) {8FNHTML5中文学习网 - HTML5先行者学习网
                var datas = JSON.parse(xhr.responseText);8FNHTML5中文学习网 - HTML5先行者学习网
                //执行回调函数8FNHTML5中文学习网 - HTML5先行者学习网
                callBack(datas);8FNHTML5中文学习网 - HTML5先行者学习网
            }8FNHTML5中文学习网 - HTML5先行者学习网
        }8FNHTML5中文学习网 - HTML5先行者学习网
        //5.08FNHTML5中文学习网 - HTML5先行者学习网
        xhr.send(params);8FNHTML5中文学习网 - HTML5先行者学习网
    }8FNHTML5中文学习网 - HTML5先行者学习网
};8FNHTML5中文学习网 - HTML5先行者学习网
8FNHTML5中文学习网 - HTML5先行者学习网

ps:在JQuery里面是有$.ajax  和$.get /   $.Post  等异步请求的方法的。以前的封装就不用了。额。好扯。其实他们底层也是这样的写的呢。JQuery就是为了解决各个浏览器的兼容性问题而已8FNHTML5中文学习网 - HTML5先行者学习网

以上就是本人对于jQuery异步对象(XMLHttpRequest)的理解,如有遗漏,麻烦联系我,补充上。8FNHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助