AJAX(2)

AJAX (Asynchronous Javascript And XML)


你看到一个网页代码,网页里有script代码,script里面有XMLHttpRequest
于是基本可以确定你在看一个应用了ajax的网页 

AJAX就是这么简单
在javascript里定义一些XMLHttpRequest,通过.open和.send来设定并执行一些行为。
通过onreadystatechange里面 定义对不同的readystate有什么样的行为并针对不同状态改变DOM架构的网页内容(当然不用DOM也没所谓)
于是就结束了

我们看下涉及到了哪些点
1.XMLHttpRequest
技术上来讲, 这个对象是ajax的核心,所有的东西都从这个上引出
IE5.0之前放弃吧,就压根没支持,5.0到7.0用ActiveXObject 之后听说是与firefox一致将其视为javascript对象了
所以一般来讲会列出几种
 xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP.3.0");    
 xmlhttp_request = new ActiveXObject("Msxml2.XMLHTTP");   
 xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP");   
 xmlhttp_request = new XMLHttpRequest();

有兴趣的自己可以查下 若你做的网页想在所有浏览器上都可以正常工作的话。

 

它的内部包含了以下对象和方法

对象

readyState 请求的状态 0=初始化 1=读取中 2=已读取 3=交互中 4=完成

onreadystatechange 一个事件触发器,只要readyState改变了 就会被触发

status 包含正常的HTTP请求可能出现的status 比如 200是成功 404是页面没找到 等等。
statusText 请求后服务端返回的状态文本,只有readyState的值为3或者4的时候 才有用
responseText 服务端返回信息的文本形式

responseXML 服务端返回信息的XML对象(兼容DOM),当readyState为3或者4的时候,一般Content-Type=text/xml或application/xml



方法

open方法  用来设定请求的行为模式及参数

open(act, url, async)

一般3个参数,第一个是HTTP行为模式(GET, POST, PUT, DELETE,HEAD),第二个是URL, 第三个是是否为异步

GET是取得页面,POST以表单方式提交并取得相应反馈页面,PUT为创建保存行为,DELETE为删除行为,HEAD为只收取相应页面的HEAD部分(写过HTML的都该知道什么是head部分吧)

 

send方法 用来发送请求

send(var)

有一个参数,在你什么都不想做的时候 直接写个null就好,若是有东西要post过去的话 也可以在这里写 若是open中的是否异步为真的时候将立刻返回 继续程序流程

abort方法 用来取消请求
abort()
无参数 用来取消请求 将其readyState重置为0

setRequestHeader()方法 用于设置发出请求的head

setRequestHeader(DOMString head, DOMString value)
两个参数,要求是DOMString类型的head以及value, 只能在readyState=1的时候使用 否则 将返回异常
getRequestHeader()方法 用于得到响应的head
getRequestHeader(DOMString head)
一个参数 要求是DOMString类型, 在readyState为3或4之前 只能得到空
getAllRequestHeader()方法 用于得到所有响应的head
getAllRequestHeader()
无参数 在readyState为3或4之前 只能得到空,得到的每个head信息将单独作为一行
大概就这么多了 各位应用的时候多尝试就知道了


 

上一篇:AJAX(1)


下一篇:CSDN的自动发布时间认证太低级了