AJAX入门

Ajax 由 HTML、JavaScript™技术、DHTML和 DOM组成,总体名称是Asynchronous+Java+And+XML


出现的原因:

      现在软件编程领域,毫无疑问的有两种方式,一种是客户端的APP,可以直接在电脑或移动端进行下载安装包安装,还有一种就是通过网络页面与服务器相连接,从而完成一定的工作.两者相比较而言,桌面应用程序更加简单方便,可以拥有更加简单的操作和更加绚丽的界面,最重要的是反应速度比传统Web页面要迅速的多,尤其是Web程序如果后台运行太过复杂或功能太多的话,那么让用户的等待时间会更加漫长,用户体验度会大大降低。AJAX的出现解决了这种问题。


老技术,新思想:

1、使用XHTMLCSS的基于标准的表示技术

2、使用DOM进行动态显示和交互

3、使用XMLXSLT进行数据交换和处理

4、使用XMLHttpRequest(处理所有服务器通信的对象)进行异步数据检索

5、使用JavaScript将以上的技术融合在一起,帮助改进与服务器应用程序的通信


总体来说,AJAXWeb应用程序创建的基础技术的再次创新和结合

 

传统与现代:


传统同步交互方式:用户点击链接或按钮,向服务器提出请求——用户等待服务器的响应——服务器进行相应的处理——响应结果通过一个新的HTML页面返回给用户。

                                   

现代异步交互方式:用户点击链接或按钮,向服务器提出请求不需要等待服务器的响应,可以继续自己的用户体验。当服务器处理完成以后,返回给浏览器过程中,会有XMLHttpRequest对象接收数据结果,并通过相应的程序将响应的结果呈现给用户(用户活动没有中断,并始终在一个页面去查看服务器的相应响应结果)

                    



AJAX方式下的Web应用优势:

1、改善表单验证方法,不需要再打开新的页面,也不需要将整个页面数据提交

2、不需要刷新页面就可以改变页面内容

3、按需求获取数据

4、读取外部数据,进行数据处理整合

5、异步与服务器交互,交互过程中用户无需等待,仍可以继续操作。

       


AJAX应用的五个步骤:

GET方法

<span style="font-size:18px;">//定义全局变量  
var xmlhttp;  
  
/* <strong>1、创建XMLHttpRequest对象  </strong>
*说明:这是一个相对复杂的过程,因为要使用不同的浏览器  
*/  
if(window.XMLHttpRequest){  
    //适用于IE7、IE8、FireFox、Opera等浏览器  
    xmlhttp = new XMLHttpRequest();  
    if(xmlhttp.overrideMineType){  
        xmlhttp.overrideMineType("text/xml")  
    }  
}else if(window.ActiveXObject){  
    //IE6、IE5、IE5.5  
    var MSXML = ["MSXML2.XMLHTTP.6.0","MSXML2.XMLHTTP.5.0",
              "MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0",
               "MSXML2.XMLHTTP", "Miscrosoft.XMLHTTP"];  
    for(var n =0 ;i<MSXML.length;n++){  
        try{  
            xmlhttp = new ActiveXObject(activexName[n]); 
            break; 
        }catch(e){  
              
        }  
    }  
}  
if(xmlhttp == undefind || xmlhttp == null){  
    alert("当前浏览器不支持创建XMLHttpRequest对象");  
    return;  
}  

/*2<strong>、给XMLHttpRequest对象注册回调方法 </strong> 
*注意:虽然callback是一个方法,但是这里必须使用方法名,后面不用加()  
*/  
xmlhttp.onreadystatechange = callback;  
  
/*  
*<strong>3、设置和服务器交互的相应的参数  ,使用open方法与服务器建立链接</strong>
*/  
//UserName是页面中的控件id  
var userName = document.getElementById("UserName").value;  
  
xmlhttp.open("GET","AJAX?name="+userName,true);  
//open方法几个重要的参数:get/post,服务器地址,  
//XMLhttpRequest对象的交互方式即同步/异步,true表示异步方式)  
  
/*  
*<strong>4、设置向服务器发送的数据,启动和服务器的交互  </strong>
*/  
xmlhttp.send(null);  
  
function callback(){  
/*  
*<strong>5、回调函数的实际工作判断和服务器交互是否完成,还要判断服务器是否正确返回了数据  ,针对不同响应状态进行处理</strong>
*/    
    if(xmlhttp.readyState == 4){  
        //表示和服务器端的交互已经完成  
        if(xmlhttp.status == 200){  
        //表示服务器的响应代码是200,正确的返回了数据  
        //纯文本数据的接受方法  
        var message = xmlhttp.responsText();  
        //如果使用的是DOM对象的接受方法,则  
        //var doxXml = xmlhttp.responseXML();  
        //但是有一个前提,服务器端需要设置content-type为text/xml  
          
        var div = document.getElementById("页面div的ID")         
        div.innerHTML = message;  
  
        }  
    }  
}  
</span>

POST方式(3、4步与Get方式不同)

<span style="font-size:18px;"> /*  
 *<strong>3、设置和服务器交互的相应的参数  </strong>
 */  
 //UserName是页面中的控件id  
 var userName = document.getElementById("UserName").value;  
   
 xmlhttp.open("POST","AJAX",true);  
 //open方法几个重要的参数:get/post,服务器地址,  
 //XMLhttpRequest对象的交互方式即同步/异步,true表示异步方式)  
   
 /*  
 *<strong>4、设置向服务器发送的数据,启动和服务器的交互  </strong>
 */  
 xmlhttp.setRequestHeader("Content-Type","application/x-www-fora-urlencoded");  
 xmlhttp.send("name="+userName);  
</span>


总结(注意事项):

1、不同浏览器的兼容性

2、回调函数callback没有括号

3GETPOST方式代码写法的不同,通常我们在服务器端的Servlet中,doGet和doPost做的是一样的工作,因此由于POST传递的信息没有大小限制,所以在实际应用中比较多的使用POST。

(A、Get方式传递给服务器的信息一般以后缀参数方式存在于URL地址中,而URL的长度通常都有限制,这些也就限制了Get方式传递给服务器的内容大小

  B、Post方式传递给服务器的信息并不位于URL地址中所有没有大小限制)



评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值