现在的位置: 首页 > 综合 > 正文

XMLHttpRequest编写AJAX应用步骤

2013年09月13日 ⁄ 综合 ⁄ 共 1146字 ⁄ 字号 评论关闭

大致分为如下5步:

1)创建XMLHttpRequest对象 ,注意不同浏览器的创建方法不一样:    

对于FireFox,Mozillar,Opera,Safari,IE7,IE8,创建方法如下:   

XMLHttpRequest  xmlhttp = new XMLHttpRequest();    

对于IE6,IE5.5,IE5 ,创建方法为:    

var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
        for (var i = 0; i < activexName.length; i++) {
            try{
                //取出一个控件名进行创建,如果创建成功就终止循环
                //如果创建失败,回抛出异常,然后可以继续循环,继续尝试创建
                xmlhttp = new ActiveXObject(activexName[i]);
                break;
            } catch(e){
            }

 

 

2)注册回调函数

xmlhttp.onreadystatechange = callback;

 

这里是把回调函数名赋值给onreadystatechange ,不要写成callback(),后者表示是把回调函数的执行结果进行赋值

 

3)创建连接信息,即设置提交方式,服务器的url,是否采取异步通信。如果是get提交方式,可以讲参数拼接在URL中

xmlhttp.open("GET","ServerURL?name="+ userName,true);

 

4)提交数据到服务器,开始交互

xmlhttp.send(null);

 

如果在步骤3中采取的是Get方式,提交的参数已经拼接在了URL里,所以这里发送数据时可以传一个null值

 

 

5)接收服务器传回的数据。 在取数据前需要判断交互是否完成

if (xmlhttp.readyState == 4) {
        //判断http的交互是否成功
        if (xmlhttp.status == 200) {
            。。。开始获取服务漆器端返回的数据

 

readyState  取值如下:

0:请求未初始化(还没有调用 open())。
1:请求已经建立,但是还没有发送(还没有调用 send())。
2:请求已发送,正在处理中(通常现在可以从响应中获取内容头)。
3:请求在处理中;通常响应中已有部分数据可用了,但是服务器还没有完成响应的生成。
4:响应已完成;您可以获取并使用服务器的响应了。

 

如果采用Jquery的话,我们编写的代码会减少很多。如步骤1中浏览器的判断,这些都用jquery自己完成了

抱歉!评论已关闭.