第一个 Ajax 程序

作者:msf 来源:ITPOW(原创) 日期:2007-1-25

我认为 Ajax 的核心是 XMLHTTP(视不同的浏览器,说法不同),它实现了在“后台”与服务器通信的功能。

在不同的浏览器以及不同的版本中,对 XMLHTTP 的支持也不同,所以本来很简单的一个对象,我们却不得不用大量的代码来适应不同的浏览器

function CreateHTTPObject()
{
    var xmlhttp;
   
    try
    {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
        try
        {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e)
        {
            xmlhttp = false;
        }
    }
   
    if (!xmlhttp && typeof(XMLHttpRequest) != "undefined")
    {
        try
        {
            xmlhttp = new XMLHttpRequest();
        }
        catch (e)
        {
            xmlhttp = false;
        }
    }
   
    if (!xmlhttp && window.createRequest)
    {
        try
        {
            xmlhttp = window.createRequest();
        }
        catch (e)
        {
            xmlhttp = false;
        }
    }
   
    return xmlhttp;
}

在上述代码中,将创建 XMLHTTP 的程序封装成一个函数,以兼容不同的浏览器。建议大家把上述代码拷贝起来,需要时直接使用,避免再去写。

实际上大多数浏览器只使用两类对象,如果您觉得没有必要,也可以采用如下的代码。

function CreateHTTPObject()
{
    if (window.ActiveXObject)
    {
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest)
    {
        return new XMLHttpRequest();
    }
    return false;
}

好了,说了那么多,也该说到应用了。


[Ctrl+A 全部选择 提示:您可先修改部分代码,再按运行]

程序向 http://www.itpow.com/style/common.css 发出请求,如果目标存在,那么在默认设置下,IE、Netscape、Firefox、Opera 中均可以看到一个样式表被显示出来了。

注意:如果您把这段代码拷到其它地方,可能只有在 IE 中看得到效果,这是由于在其它浏览器中阻止了读取其它站点数据的原因,如果我们把 http://www.itpow.com/style/common.css 改为对应站点的文件,同样又可以看到效果。

我们在下一节请逐步讲解 XMLHTTP 的应用,我们建议您先参考:XMLHTTP 速查

相关文章