XMLHttpRequest

主要内容javascript

这里是列表文本这里是列表文本使用XMLHttpRequest 对象
使用XMLHttpRequest 事件
跨域ajax 通讯的限制java

**ajax **
全名:asynchronous javascript + xml 的简写
改变了web诞生依赖单击等待的模式。web

ajax的技术核心:XMLHttpRequest 对象(简称 XHR)。
这是微软引进的一个特性,在这以前ajax的 通讯必须借助一些hack 手段进行。ajax

XHR 为向服务器发送请求和接收服务器的响应提供了一系列的接口。可以以异步的方式从服务器获取更多信息。也就是说能够使用XHR 获取新数据,而后经过DOM将数据插入到页面中。跨域

此外,虽然名字中包含XHR,但 ajax通讯与数据格式无关,得到的数据不必定就是xml数据。浏览器

历史
IE5 是第一款引入XHR的浏览器 。在IE5中 XHR对象是经过MSXML库中的一个ActiveX对象实现的。服务器

在IE5中 可能遇到三种不一样版本的XHR 对象。即 MSXML2.XMLHttp、 MSXML2.XMLHttp.3.0、 MSXML2.XMLHttp.6.0。异步

IE7以前的 版本async

要使用MSXML库中的XHR 对象,须要编写一个函数: 这个函数会根据可用的MSXML库建立最新版本的XHR对象。函数

function createXHR() {
    if(typeof arguments.callee.activeString != "string") {
        var versions = ["MSXML2.XMLLHttp.6.0","MSXML2.XMLLHttp.3.0","MSXML2.XMLLHttp"],
            i,len;

        for (i=0,len= versions.length;i< len;i++) {
            try{
                new ActiveXObject(versions[i]);
                arguments.callee.activeXString = versions[i];
                break;
            } catch (ex) {
                //跳过
            }
        }
    }
    return new ActiveXObject(arguments.callee.activeXString);
}

var xhr = createXHR();

IE7+、FireFox、Operra、Chrome和Safari都支持原生的XHR对象

能够使用XHR构造函数

var xhr = new XMLHttpRequest();

对二者都支持

function createXHR() {
    if (typeof XMLHttpRequest != "undefined"){
        return new XMLHttpRequest();
    } else if (typeof ActiveXObject != "undefined") {
        if(typeof arguments.callee.activeXString != "string"){
            var versions=["MSXML2.XMLLHttp.6.0","MSXML2.XMLLHttp.3.0",
                    "MSXML2.XMLLHttp"],
                i,len;
            for (i=0,len=versions.length;i<len;i++) {
                try{
                    new ActiveXObject(versions[i]);
                    arguments.callee.activeXString = versions[i];
                    break;
                } catch (ex){
                    //跳过
                }
            }
        }
        return new ActiveXObject(arguments.callee.activeXString);
    } else {
        throw new Error("NO XHR object available");
    }
}

var xhr = createXHR();

建立XHR对象

这个程序,首先检测原生的XHR是否存在,若是存在则返回其新实例。 若是不存在,则检测ActiveX 对象。若是这两个都不存在,则抛出一个错误。

相关文章
相关标签/搜索