AJAX开发框架
AJAX实质上也是遵循Request/Server模式,所以这个框架基本的流程是:对象初始化、发送请求、服务器接收、服务器返回、客户端接收、修改客户端页面内容。只不过这个过程是异步的。
A、初始化XMLHttpRequest对象
function createXmlHttpRequest(){ var xmlHttp; try{ //Firefox,Opera 8.0+,Safari xmlHttp=new XMLHttpRequest(); }catch (e){ try{ //Internet Explorer xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }catch (e){ try{ xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }catch (e){} } } return xmlHttp; }
指定当服务器返回信息时客户端的处理方式。只要将相应的处理函数名称赋给XMLHttpRequest对象的onreadystatechange属性就可以了.比如:
C、发出HTTP请求 向服务器发出HTTP请求了。这一步调用XMLHttpRequest对象的open和send方法。
//发送请求 function sendRequest(){ //获取文本框的值 var chatMsg=input.value; var url="chatServlet.do?charMsg="+chatMsg; //建立对服务器的调用 XMLHttpReq.open("POST",url,true); //设置MiME类别,如果用 POST 请求向服务器发送数据, //需要将"Content-type" 的首部设置为 "application/x-www-form-urlencoded". //它会告知服务器正在发送数据,并且数据已经符合URL编码了。 XMLHttpReq.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //状态改变的事件触发器,客户端的状态改变会触发readystatechange事件,//onreadystatechange会调用相应的事件处理函数 XMLHttpReq.onreadystatechange=processResponse; //发送数据 XMLHttpReq.send(null); } D、处理服务器返回的信息 处理响应处理函数都应该做什么。 XMLHttpRequest对成功返回的信息有两种处理方式:
//处理返回信息的函数 function processResponse(){ if(XMLHttpReq.readyState==4){ //判断对象状态 4代表完成 if(XMLHttpReq.status==200){ //信息已经成功返回,开始处理信息 document.getElementById("chatArea").value=XMLHttpReq.responseText; } } } 数据格式提要 在服务器端 AJAX 是一门与语言无关的技术。在业务逻辑层使用何种服务器端语言都可以。
XML 如果文档来自于服务器,就必须得保证文档含有正确的首部信息。若文档类型不正确,那么 responseXML 的值将是空的。
JSON JSON(JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
解析JSON JSON 只是一种文本字符串。它被存储在 responseText 属性中。 优点:作为一种数据传输格式,JSON 与 XML 很相似,但是它更加灵巧。JSON 不需要从服务器端发送含有特定内容类型的首部信息。
解析HTML HTML 由一些普通文本组成。如果服务器通过 XMLHttpRequest 发送 HTML, 文本将存储在 responseText 属性中。 优点:从服务器端发送的 HTML 代码在浏览器端不需要用 JavaScript 进行解析。HTML 的可读性好。HTML 代码块与 innerHTML 属性搭配,效率高。
对比小结 若应用程序不需要与其他应用程序共享数据的时候,使用 HTML 片段来返回数据时最简单的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |