Ajax之二 Ajax基础(上)

简介: Ajax之二 Ajax基础

视频:C#程序设计与宿舍管理系统实战-c#宿舍管理系统,c#学生宿舍管理系统-C#视频教程-后端开发-CSDN程序员研修院


[学习目标]


   理解并掌握XMLHttpRequest对象的相关属性和方法的使用


   理解并掌握如何利用XMLHttpRequest对象读取xml格式文档


【本章简介】


         Ajax是一组技术的集合,Asp.Net AJAX就是建立在这组技术的基础之上的。虽然Asp.Net AJAX尽量隐藏了Ajax的技术细节,但是要想明白Asp.Net AJAX能干什么,或者说要想扩展这个框架以便创建所需要的高级应用程序,那么就必须拥有关于Ajax的一些更加深入的知识。


术语“Ajax”是在2005年初由Jesse James Garrett在他的随笔《A New Approach to WebApplication》中提出的。不过,除了这个术语本身之外,组成它的那些技术都不是什么新事物。虽然XML可以是Ajax应用程序的一部分(不过也不是必需的!),其基础让然是JavaScript(不在此处赘述,请参阅相关JavaScript书籍或文档)。


下面介绍两个Ajax常用的核心对象,通常用来向Web应用程序提供Ajax行为。即XMLHttpRequest对象,主要负责生成异步的HTTP调用。


1.1 XMLHttpRequest对象

1.1.1XMLHttpRequest简介


XMLHttpRequest的第一个实现可以追溯到1999年发布的IE5.0,当时IE5.0包含了一个叫做XMLHttpRequest对象的ActiveX对象,其工作内容就像它的名字一样,生成一个HTTP请求并获取回一个消息。在后续的时间里,其他浏览器如Mozilla 、Mac的Camino 、Firefox等都提供了对XMLHttpRequest对象的支持。


由于市场上的大部分浏览器(市场份额约99%)都支持XMLHttpRequest,因此也就有了Ajax兼容的大环境,所以,也意味着几乎人人都可以体验Ajax应用程序了。但也有例外,就是用户自己禁用了浏览器中的JavaScript。


1.1.2XMLHttpRequest的常用属性和方法


   常用属性如下表所示:

属性名

描述

onreadystatechange

指定当readyState属性改变时的事件处理句柄。只写

readyState

返回当前请求的状态,只读

responseBody

将回应信息正文以unsigned byte数组形式返回。只读

responseText

以字符串的形式返回响应数据

responseXML

以XML文档的格式返回响应数据

status

含有请求所返回的HTTP状态码,只读

statusText

含有与该HTTP状态对应的文字描述,只读


onreadystatechange属性为HTTP响应提供了回调的途径。该属性的名称说明了其功能:它指示了一个动作,这个动作在另一个XMLHttpRequest属性(readyState)的值发生改变时被触发。readyState属性用于表示XMLHttpRequest对象的状态,它共有5个可能值。


readyState的值                  说明


0                           对象未初始化


1                           请求正在加载


2                           请求已经加载完成


3                           请求正在等待用户交互


4                           请求已完成


常用方法如下表所示:

方法

描述

abort

取消当前请求

getAllResponseHeaders

获取响应的所有http头

getResponseHeader

从响应信息中获取指定的http头

open

创建一个新的http请求,并指定此请求的方法、URL以及验证信息(用户名/密码)

send

发送请求到http服务器并接收回应

setRequestHeader

单独指定请求的某个http头

1.1.3 对XMLHttpRequest对象编程


   实例化XMLHttpRequest对象的方式取决于代码在什么浏览器中执行。对于IE5.0及其后续版本,下面的代码片段是可以工作的。它将尝试两种方法以实例化XMLHttpRequest,因为不同版本的IE有着不同版本的Microsoft XML库。为了避免在其中一种方法失败时出错,这里使用了两个try-catch块:


var XMLHTTP=null;
    try{
        XMLHTTP=newActiveXObject("Msxml2.XMLHTTP");
    }catch(e){
        try{
            XMLHTTP=newActiveXObject("Microsoft.XMLHTTP");      
        }catch(e){}
    }


   对于IE以外的其他浏览器,可以使用一种简洁的语法:


       XMLHTTP=new XMLHttpRequest();


   因此,我们所需要做的就是先判断正在使用什么类型的浏览器,然后再通过相应的办法来实例化XMLHttpRequest对象即可。例如下面的代码通过测试window对象的ActiveXObject属性来判断是否能够实例化一个AcitveX对象,如果成功,则该浏览器就肯定是IE。


if(window.ActiveXObject)
    {
        //它可能是IE
    }
    同样,你可以使用下面的代码片段来判断是否存在XMLHttpRequest对象。
    if(XMLHttpRequest){
        //它很可能不是IE
    }

   使用标准的JavaScript来判断浏览器的功能,检查window.XMLHttpRequest(注意,不是XMLHttpRequest)以确定浏览器是否支持本地的XMLHttpRequest对象。如果使用了这个技术的话,该函数的写法就稍微有点不同了,如下所示:

function getXMLHTTP()
        {
            var XMLHTTP=null;
            if(window.ActiveXObject)
            {
                try{
                    XMLHTTP=newActiveXObject("Microsoft.XMLHTTP");
                }catch(e){}
            }else if(window.XMLHttpRequest)
            {
                try{XMLHTTP=newXMLHTTPRequest();
                }catch(e){}
            }
            return XMLHTTP;
        }

网上有关于多种实现判断的方法,请大家在考虑多种浏览器的同时,考虑程序的健壮性。

目录
相关文章
|
XML 开发框架 前端开发
Ajax之二 Ajax基础(下)
Ajax之二 Ajax基础(下)
60 0
|
XML 开发框架 前端开发
Ajax之一 简介篇(下)
Ajax之一 简介篇(下)
77 0
|
开发框架 前端开发 JavaScript
Ajax之一 简介篇(上)
Ajax之一 简介篇
57 0
|
Web App开发 前端开发 JavaScript
Ajax:服务器的基本概念与初识Ajax
Ajax:服务器的基本概念与初识Ajax
123 0
|
6月前
|
XML 前端开发 JavaScript
Ajax的基础使用
Ajax的基础使用
42 0
|
前端开发
Ajax基本案例详解之$.get的实现
前面我已经写过一篇ajax的$.ajax的实现了,其中html,css,doindex.jsp里面已经详细列出来了,这篇主要写的是$.get()的实现,其中html,css,doindex.jsp都和Ajax基本案例详解之$.get的实现 里面的一样,所以这里就不重复的写了,在这里只写一下<script>里面的内容就行
|
前端开发 UED 开发者
如何使用 Ajax?
Ajax 可以使Web应用更加迅捷动态化
111 0
|
数据采集 XML 前端开发
【Ajax入门技术】了解Ajax
【Ajax入门技术】了解Ajax
120 0
【Ajax入门技术】了解Ajax
|
XML 前端开发 JavaScript
|
XML 前端开发 JavaScript
Ajax 基础
Ajax 基础
116 0
Ajax 基础