AJAX基础知识
一、含义: 每当我们提到一个新名词时,我们总爱问:是什么?那么AJAX到底是什么呢?笔者今天将对AJAX稍作阐述:
百度百科: AJAX即“AsynchronousJavascript+XML”(异步JavaScript和XML,是指一种创建交互式网页应用的网页开发技术。 AJAX = 异步JavaScript和XML(标准通用标记语言的子集)。 AJAX 是一种用于创建快速动态网页的技术。 通过在后台与服务器进行少量数据交换,AJAX可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。而传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页面。 有很多使用 AJAX的应用程序案例:新浪微博、Google地图、开心网等等。 笔者解释:
AJAX是一种技术,一种组合技术,也可以说是老技术新应用。下面提几个名词(这项技术中的主体部分),大家一定很熟悉:
二、原理: 原理部分笔者将用两张图做个对比 图一:使用AJAX
图二:不使用AJAX
三、XMLHttpRequest对象: 全篇文章唯一的陌生估计就是“XMLHttpRequest对象”了。下面就对XMLHttpRequest对象做一个简单的了解: XMLHttpRequest属性: readyState responseText responseXML status statusText
XMLHttpRequest方法: abort() getAllResponseHeaders() getResponserHeader() ;open();send() sentRequestHeader() 创建XMLHttpRequest对象: //创建XMLHttpRequest对象 varxmlhttprequest; functioncreateXmlHttpRequest(){ // if(window.XMLHttpRequest){ xmlhttprequest=newXMLHttpRequest(); } // elseif(window.ActicvXObject){ xmlhttprequest=newActicvXObject("Microsoft.XMLHTTP"); } } AJAX发出请求: 1.从Web表单中获取需要的数据 2.建立连接的URL 3.打开到服务器的连接 4.设置服务器在完成后要运行的函数 5.发送请求
function validate(){ // Ajax完成数据的验证 //获得数据 var field=document.getElementById("userId").value; if(trim(field)!=""){ //创建一个XMLHttpRequest对象 createXmlHttpRequest(); var url="user_add_validate.jsp?userId=" + trim(field)+"&time="+new Date().getTime(); //设置请求方式为get,设置请求的url,设置为异步提交 xmlhttprequest.open("get",url,true); //将方法地址复制给onreadystatechange属性,类似于电话号码 xmlhttprequest.onreadystatechange=callback; //将设置信息发送到AJAX引擎 xmlhttprequest.send(null); } else{ //清空数据 document.getElementById("spanUserId").innerHTML=""; } }
四、使用AJAX的完整实例: 客户端代码:
//创建XMLHttpRequest对象 var xmlhttprequest; function createXmlHttpRequest(){ // if(window.XMLHttpRequest){ xmlhttprequest=new XMLHttpRequest(); } // else if(window.ActicvXObject){ xmlhttprequest=new ActicvXObject("Microsoft.XMLHTTP"); } } function validate(){ // Ajax完成数据的验证 //获得数据 var field=document.getElementById("userId").value; if(trim(field)!=""){ //创建一个XMLHttpRequest对象 createXmlHttpRequest(); var url="user_add_validate.jsp?userId=" + trim(field)+"&time="+new Date().getTime(); //设置请求方式为get,设置请求的url,true); //将方法地址复制给onreadystatechange属性,类似于电话号码 xmlhttprequest.onreadystatechange=callback; //将设置信息发送到AJAX引擎 xmlhttprequest.send(null); } else{ //清空数据 document.getElementById("spanUserId").innerHTML=""; } } function callback(){ //判断ajax引擎是否得到了响应 //alert(xmlhttprequest.readyState); if(xmlhttprequest.readyState==4){ //HTTP协议状态为成功 if(xmlhttprequest.status==200){ if(trim(xmlhttprequest.responseText)!=""){ //alert("请求成功:"+xmlhttprequest.responseText); document.getElementById("spanUserId").innerHTML="<font color='red'>" + xmlhttprequest.responseText +"</font>"; } else{ document.getElementById("spanUserId").innerHTML=""; } } else{ alert("请求失败:"+xmlhttprequest.status); } } } 五、总结: 本篇博客只是从AJAX的含义,原理,以及它的简单应用等几个角度,对AJAX做了简单的介绍。一提AJAX技术就不得不提的回调机制将在下面文章中阐述。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |