AJax技术

ajax学习札记(三)

字号+ 作者:H5之家 来源:H5之家 2018-03-10 08:00 我要评论( )

ajax学习笔记(三) ajax 在服务器端处理 XML 数据 ??????? 首先需要在服务器端返回 xml 格式文本数据,具体方法可以采用字符串拼接的方式(严格格式要求),但最好采用 dom4j 框架,感觉最好在 vo 对象中添加 toXMLString 方法返回该 vo 对象 xml 格式字符

ajax学习笔记(三)

ajax在服务器端处理XML数据

??????? 首先需要在服务器端返回xml格式文本数据,具体方法可以采用字符串拼接的方式(严格格式要求),但最好采用dom4j框架,感觉最好在vo对象中添加toXMLString方法返回该vo对象xml格式字符串。在服务器端需要设置response.setContentType("text/xml;charset=utf-8");(如果不设置在Firefox中正常IE中会出现异常),在JavaScript中调用XMLHttprequestresponseXML属性返回xml对象。这点处理上firefoxiE又有所不同,firefox不能接受responseXML 必须对responseText进行XML格式化,详见代码部分,然后使用dom中的方法获取xml的节点,再取得具体文本内容。(代码见下)

????

????? 缓存问题

????? IE中如果请求地址相同,IE会调用缓存内容,如果不希望这种结果,可以再调用地址中加入时间戳,使得每次调用地址不同。

//url地址增加时间戳,骗过浏览器,不读取缓存
function convertURL(url) {
??? //
获取时间戳
??? var timstamp = (new Date()).valueOf();
??? //
将时间戳信息拼接到url
??? //url = "AJAXServer"
??? if (url.indexOf("?") >= 0) {
??????? url = url + "&t=" + timstamp;
??? } else {
??????? url = url + "?t=" + timstamp;
??? }
??? return url;
}

???? 中文乱码问题

??? 方法1,页面端发出的数据作一次encodeURI,服务器段使用new String(old.getBytes("iso8859-1"),"UTF-8");


???
方法2,页面端发出的数据作两次encodeURI,服务器段使用URLDecoder.decode(old,"UTF-8")

????? AJAX应用的五部归纳

???? 1、创建XMLHttpRequest对象

???? 2、设置回调函数

???? 3、使用open方法与服务器建立连接

???? 4、向服务器端发送数据

???? 5、在回调函数中针对不同响应状态进行处理并接受服务器端返回数据

if(window.ActiveXObject){ var domObj=xmlhttp.responseXML; }else if(window.XMLHttpRequest){ var parser = new DOMParser(); var domObj= parser.parseFromString(xmlhttp.responseText, "text/xml"); } if (domObj) { //dom中利用getElementsByTagName可以根据标签名来获取元素节点,返回的是一个数组 var messageNodes = domObj.getElementsByTagName("message"); if (messageNodes.length > 0) { //获取message节点中的文本内容 //message标签中的文本在dom中是message标签所对应的元素节点的字节点,firstChild可以获取到当前节点的第一个子节点 //通过以下方式就可以获取到文本内容所对应的节点 var textNode = messageNodes[0].firstChild; //对于文本节点来说,可以通过nodeValue的方式返回文本节点的文本内容 var responseMessage = textNode.nodeValue; //将数据显示在页面上 //通过dom的方式找到div标签所对应的元素节点 var divNode = document.getElementById("result"); //设置元素节点中的html内容 divNode.innerHTML = responseMessage; } else { alert("XML数据格式错误,原始文本内容为:" + xmlhttp.responseText); } } else { alert("XML数据格式错误,原始文本内容为:" + xmlhttp.responseText); }

?

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • JQuery学习笔记整理:AJAX

    JQuery学习笔记整理:AJAX

    2018-03-10 10:00

  • Ext.Ajax.request 兑现同步交互

    Ext.Ajax.request 兑现同步交互

    2018-03-07 16:04

  • ITeye Java编程 Spring框架 Ajax技术 agile敏捷软件开发 ruby o

    ITeye Java编程 Spring框架 Ajax技术 agile敏捷软件开发 ruby o

    2018-03-07 16:02

  • Ajax-网页异步更新

    Ajax-网页异步更新

    2018-03-07 10:09

网友点评