首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

2.1.1  XMLHttpRequest对象

Ajax应用的特点之一就是无需刷新页面即可向服务器传输或者读写数据(又称无刷新更新页面),这一特点主要得益于XMLHttpRequest对象。这样就可以像桌面应用程序一样,只同服务器进行数据层面的交换,而不用每次都刷新界面,也不用每次将数据处理的工作提交给服务器来做。这样既减轻了服务器的负担又加快了响应速度、缩短了用户等候的时间。

最早应用XMLHTTP 组件的是微软公司,IEIE5以上)通过允许开发人员在Web页面内部使用XMLHTTP ActiveX组件来扩展自身的功能,开发人员不用通过当前的Web页面导航而直接传输数据到服务器上或者从服务器取回数据。这个功能是很重要的,因为它减少了Web应用由于无状态连接所导致的麻烦,还可以避免下载冗余的HTML,从而提高进程的速度。MozillaMozilla1.0以上及NetScape7以上)做出的回应是创建自有的继承XML代理    类—XMLHttpRequest类。KonquerorSafariv1.2(基于KHTML的浏览器)也支持XMLHttpRequest对象。而Opera也将在v7.6x+以后的版本中支持XMLHttpRequest对象。对于大多数情况,XMLHttpRequest对象和XMLHTTP组件很相似,方法和属性也类似,只是有一小部分属性不支持。表2-1和表2-2分别列出了XMLHttpRequest对象的方法和属性。

2-1                                                 XMLHttpRequest对象方法

   

   

abort()

停止当前请求

getAllResponseHeaders()

HTTP请求的所有响应首部作为键/值对返回

getResponseHeader("headerLabel")

返回指定首部的字符串值

open("method","URL"[,asyncFlag[,"userName" [, "password"]]])

建立对服务器的调用,method参数可以是GETPOSTPUTURL参数可以是相对或绝对URL。该方法还有3个可选参数。

asyncFlag:是否非同步标记

userName:用户名

password:密码

send(content)

向服务器发送请求

setRequestHeader("label", "value")

把指定首部设置为所提供的值,在调用该方法之前必须先调用open方法

2-2                                                 XMLHttpRequest对象属性

   

   

onreadystatechange

状态改变的事件触发器,每个状态改变都会触发这个事件触发器

readyState

对象状态:

0 = 未初始化

1 = 正在加载

2 = 已加载

3 = 交互中

4 = 完成

responseText

服务器的响应,字符串

responseXML

服务器的响应,XML。该对象可以解析为一个DOM对象

status

服务器返回的HTTP状态码

statusText

HTTP状态码的相应文本

 

下面的代码段给出了创建XMLHttpRequest对象并向服务器发送请求的方法:

var xmlhttp;

if (window.ActiveXObject)

{

    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

}

else (window.XMLHttpRequest)

{

    xmlhttp = new XMLHttpRequest();

}

根据window.ActiveXObject来判断是否是IE浏览器,如果是则创建XMLHTTP ActiveX对象,否则创建XMLHttpRequest对象。

xmlhttp.open("GET", "http://localhost/testAjax");

调用远程服务器,method参数为“GET”。

xmlhttp.onreadystatechange = callback;

xmlhttp对象设置状态改变事件响应函数。

xmlhttp.send(null);

发送HTTP请求。

function callback()

{

    if (xmlhttp.readyState == 4)

    {

        if (xmlhttp.status == 200) //success

        {

            //do something...

        }

    }

}

callback函数是xmlhttp对象的状态改变响应函数,当请求成功完成后,根据应用的需要执行相应的功能。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论