Ajax响应数据XML格式和ajax .innerHTML处理方法

ajax .innerHTML处理

JavaScript代码分析

首先,这个需要发送三次请求,所以我们把可以重用的代码编写到一个函数中,这个函数的任务就是设置XMLHttpRequest对象,初始化必要的属性。代码很大程度上参考了《Ajax基础教程》和《AdvancED DOM Scripting》。

 代码如下 复制代码

function createRequest(options){
 var req = false;
 if(window.XMLHttpRequest) {
  var req = new window.XMLHttpRequest();
 } else if (window.ActiveXObject) {
  var req = new window.ActiveXObject('Microsoft.XMLHTTP');
 }
 if(!req) return false;
 req.onreadystatechange = function(){
  if (req.readyState ==4 && req.status == 200){
   options.listener.call(req);
  }
 };
 req.open(options.method,options.url,true);
 return req;
}

createRequest只接受一个options参数,它是一个对象,返回XMLHttpRequest对象。参数options可能是这样一个字面量对象:

 代码如下 复制代码

var options = {
 url:'ajax/strTest.txt',
 listener:callback,
 method:'GET'
}

url表示要请求的文件地址,listener会被作为onreadyStateChange,method作为open的参数。这个对象比较简单,仅仅是“刚好够用”的程度,应该还需要扩展。

有了这个创建XMLHttpRequest对象的函数之后,我们的任务就只剩下send一下了。本页有三个类似的函数,它们分别向服务器请求不同的三个文本文件:

 代码如下 复制代码

function ajaxStr(){
 var options = {
  url:'ajax/strTest.txt',
  listener:callback,
  method:'GET'
 }
 var request = createRequest(options);
 request.send(null);
}
function ajaxTable(){
 var options = {
  url:'ajax/tableTest.txt',
  listener:callback,
  method:'GET'
 }
 var request = createRequest(options);
 request.send(null);
}
function ajaxImg(){
 var options = {
  url:'ajax/imgTest.txt',
  listener:callback,
  method:'GET'
 }
 var request = createRequest(options);
 request.send(null);
}

callback函数会使用innerHTML将它们插入文档。

function callback(){
 var str = this.responseText;
 document.getElementById('test').innerHTML = str; 
}

最后的任务就是生成那几个调用函数的按钮了,这里就不给出代码了

ajax xml处理

仍然使用上一节的函数来创建XMLHttpRequest对象,这里就不写代码了。发送请求的ajaxRequest函数也比较简单:

 代码如下 复制代码

function ajaxRequest(){
 var options = {
  url:'ajax/ajaxXML.xml',
  listener:callback,
  method:'GET'
 }
 var request = createRequest(options);
 request.send(null);
}

其中,ajaxXML.xml这个文件就是我们要请求的XML格式的文件,它的内容如下:

 代码如下 复制代码

<?xml version="1.0" encoding="UTF-8"?>
<root>
 <server>
  <lang>PHP</lang>
  <lang>Java</lang>
  <lang>Python</lang>
  <lang>.NET</lang>
  <lang>Ruby</lang>
 </server>
 <browser>
  <lang>XHTML</lang>
  <lang>CSS</lang>
  <lang>JavaScript</lang>
  <lang>ActionScript</lang>
 </browser>
</root>

最后的响应函数callback才是关键:

 代码如下 复制代码

function callback(){
 var xmlDoc = this.responseXML;
 var parent = document.getElementById('langSel');
 var side = parent.options[parent.selectedIndex].value || "server";
 var target = xmlDoc.getElementsByTagName(side)[0];
 var str = "<ul>";
 var langs = target.getElementsByTagName("lang");
 var currentLang = null;
 for(var i = 0; i < langs.length; i++) {
  currentLang = langs[i];
  str += '<li>' + currentLang.childNodes[0].nodeValue + '</li>';
 }
 str += '</ul>';
 document.getElementById('test').innerHTML = str;
}

var xmlDoc = this.responseXML;通过XMLHttpRequest的responseXML属性获得请求的XML文件内容。之后我们就可以使用“各种”方法来处理它了。

xmlDoc.getElementsByTagName(side)[0];side的值可能是'server'或者是'browser',当值为server的时候就取得了server标签。再在它的基础上getElementsByTagName("lang");就取得了所有server标签下的lang,为一个类似数组的结构,我们再遍历这个数组就可以了。

 

时间: 2024-08-03 19:30:08

Ajax响应数据XML格式和ajax .innerHTML处理方法的相关文章

Ajax获取数据然后显示在页面的实现方法_AJAX相关

主要功能流程介绍 循环获取列表数据 点击列表数据进入详情页 点击报名参加弹出报名成功提示框 点击提示框中的确定按钮,跳回列表页 代码实现流程和解说 一.列表页 1.访问链接list.php时判断是pc端还是客户端 $user_agent_arr = mall_get_user_agent_arr(); if(MALL_UA_IS_PC == 1) { //****************** pc版 ****************** include_once './list-pc.php';

ajax读取数据后使用jqchart显示图表的方法_javascript技巧

本文实例讲述了ajax读取数据后使用jqchart显示图表的方法.分享给大家供大家参考.具体分析如下: 最近项目中需要显示出图表效果,原来收集到的图表插件终于有用武之地了. 但是和jqchart对比,还是有很多不同之处的. 实现效果: 我就对jqchart进行了重新编写. 首先要解决的是不显示x轴和y轴: //各DIV作成 // 取消标题显示 /* this.titleBox//Title =this.mkBoxElement('T', this.op.titleLeft,this.op.tit

Ajax获取数据然后显示在页面的实现方法

主要功能流程介绍 循环获取列表数据 点击列表数据进入详情页 点击报名参加弹出报名成功提示框 点击提示框中的确定按钮,跳回列表页 代码实现流程和解说 一.列表页 1.访问链接list.php时判断是pc端还是客户端 $user_agent_arr = mall_get_user_agent_arr(); if(MALL_UA_IS_PC == 1) { //****************** pc版 ****************** include_once './list-pc.php';

AJAX使用post发送数据xml格式接受数据_实用技巧

注意点:  1. 用POST发送数据,在2号线函数(也是ajax发送数据的函数:ajaxCall)必须加上一句:xmlObject.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 接着使用xmlObject.send(data);发送 2.3号线函数要注意:   1.禁用缓存(建议,不必要):header("Cache-Control:no-cache")

socket长连接 1秒50帧数据 xml格式传输 丢帧

问题描述 大概万分之五左右的丢帧,求解 解决方案 解决方案二:用的UDP吧 丢点正常

AJAX Hacks之Hack 4. 接收XML格式的数据

ajax|xml|数据 AJAX Hacks之Hack 4. 接收XML格式的数据 当前的许多交换数据的技术都使用XML格式的数据,那是因为XML格式的数据被广泛的使用和支持.因此,不同用户可以已有的技术来生成.发送.接收XML数据而不需要使用别的工具转换数据的格式. 一个典型的例子就是一个GPS设备可以在任何地方共享它需要的数据.无论是在远行.或是户外活动,当把设备插入到计算机的UBS接口后,就可以向web发送数据了.GPS软件被设置为默认支持XML格式的数据.而web也使用xml格式的数据.

jQuery ajax 响应数据处理

ajax在得到请求响应后主要会做两个处理:获取响应数据和使用类型转化器转化数据 a.获取响应数据 获取响应数据是调用ajaxHandleResponses函数来处理. ajaxHandleResponses的功能有: - 为jqXHR设置所有responseXXX字段(值便是响应数据) - 找到正确的dataType (在content-type和预期的dataType两者中的一个) - 返回正确的响应数据 我们看一个响应数据的格式: responses = { text: "{"co

ajax 异步数据操作详解(1/3)

ajax 异步数据操作详解 AJAX全称为"Asynchronous JavaScript and XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. 主要包含了以下几种技术: Ajax(Asynchronous JavaScript + XML)的定义 基于web标准(standards-based presentation)XHTML+CSS的表示: 使用 DOM(Document Object Model)进行动态显示及交互: 使用 XML

Ajax读取数据之分页显示篇实现代码_AJAX相关

我觉得还是有必要把我的ajax分页呈现给大家.我先讲一下这个ajax分页的实现核心,然后我们再看实例效果.所谓的ajax分页与传统的数据分页,在服务端的代码基本上是一样的.我们主要做的是使用ajax在不刷新的情况下,将请求的页码,和每页要显示的条数发送给服务端的处理网页.大家点击这个网址就可以看到要请求的数据:"ajax_page.asp?action=read&pagecount=3 & current_page=1" 在这段URL里,pagecount代表每页要显示