AJAX-数据格式提要

服务器端的编程语言只能以如下三种格式返回数据:XML,jSON,HTML

(1)HTML返回:

<script type="text/javascript">
     
     window.onload = function (){
       var aNodes = document.getElementsByTagName("a");
       for (var i = 0; i < aNodes.length; i++) {
		aNodes[i].onclick = function (){
		  var request = new XMLHttpRequest();
		  var method = "GET";
		  var url = this.href;
		  
		  request.open(method, url);
		  request.send(null);
		  request.onreadystatechange = function(){
		    if(request.readyState == 4){
		       if(request.status == 200 || request.status == 304){
		         document.getElementById("details").innerHTML = request.responseText;
		       }   
		    }
		  }
		  return false ;
		}
	   }
     }
    
  </script>

  </head>
  
  <body>
  <ul>
   <li> <a href = "andy.html">Andy</a></li>
   <li> <a href = "tom.html">Tom</a></li>
   <li> <a href = "Deve.html">Deve</a>
       <br><br><br>
   <div id = "details"></div>
  </ul>

(2)XML返回:

<!DOCTYPE html>
<html>
  <head>
    <title>index.html</title>
	
    <meta name="keywords" content="keyword1,keyword2,keyword3">
    <meta name="description" content="this is my page">
    <meta name="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  <script type="text/javascript">
     
     window.onload = function (){
       var aNodes = document.getElementsByTagName("a");
       for (var i = 0; i < aNodes.length; i++) {
		aNodes[i].onclick = function (){
		  var request = new XMLHttpRequest();
		  var method = "GET";
		  var url = this.href;
		  
		  request.open(method, url);
		  request.send(null);
		  request.onreadystatechange = function(){
		    if(request.readyState == 4){
		       if(request.status == 200 || request.status == 304){
		       
		         //<h2> <a href = "motto:andy@clearleft.com">Andy buGG</a></h2>   转换的目标格式
                 //<a href = "http://www.pzhu.cn">http://www.pzhu.cn</a>
                 
                 //结果为xml格式,所以需要responseXML来获取
                 var result = request.responseXML;
                 //结果不能使用,必须创建相应节点,再放到#details中
                 var name = result.getElementsByTagName("name")[0].firstChild.nodeValue;
                 var website = result.getElementsByTagName("website")[0].firstChild.nodeValue;
                 var email = result.getElementsByTagName("email")[0].firstChild.nodeValue;
                 
                 
                 var aNode = document.createElement("a");
                aNode.appendChild(document.createTextNode(name));
                aNode.href = website;
                 
                 var h2Node = document.createElement("h2");
                 h2Node.appendChild(aNode);
                 
                 var aNode2 = document.createElement("a");
                 aNode2.appendChild(document.createTextNode(email));
                 aNode2.href = website;
                 
                 var detailsNode = document.getElementById("details");
                 detailsNode.innerHTML = "";
                 detailsNode.appendChild(h2Node);
                 detailsNode.appendChild(aNode2);
		       }   
		    }
		  }
		  return false ;
		}
	   }
     }
    
  </script>

  </head>
  
  <body>
  <ul>
   <li> <a href = "andy.xml">Andy</a></li>
   <li> <a href = "tom.xml">Tom</a></li>
       <br><br><br>
   <div id = "details"></div>
  </ul>
  </body>
</html>

xml格式:

<?xml version="1.0" encoding="UTF-8"?>
<details>
  <name>tom</name>
  <website>http://pzhu.cn</website>
  <email>tom@clearleft</email>
</details>

(3)JSON格式返回:

一个简单的JSON:

  <script type="text/javascript"> 
    
    var jsonObject = {
      "name":"atguigu",
      "age":12,
      "address":{"city":"beijing","school":"acguigu"},
      "teaching":function(){
       alert("java EE:Android");
      }
    }
    
    alert(jsonObject.name);
    alert(jsonObject.age);
    alert(jsonObject.address.city);
    jsonObject.teaching();
  </script>

调用resposetext函数, 返回一个Json字符串,需要进行转换成html格式:

    //eval()可以将字符串内容解析成一个js处理 
var JsonStr = "{'name':'zhangsan'}";
var testStr = eval("("+JsonStr+")");
alert(testStr.name);

<!DOCTYPE html>
<html>
  <head>
    <title>testJson.html</title>
	
    <meta name="keywords" content="keyword1,keyword2,keyword3">
    <meta name="description" content="this is my page">
    <meta name="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

 <script type="text/javascript">
     
     window.onload = function (){
       var aNodes = document.getElementsByTagName("a");
       for (var i = 0; i < aNodes.length; i++) {
		aNodes[i].onclick = function (){
		  var request = new XMLHttpRequest();
		  var method = "GET";
		  var url = this.href;
		  
		  request.open(method, url);
		  request.send(null);
		  request.onreadystatechange = function(){
		    if(request.readyState == 4){
		       if(request.status == 200 || request.status == 304){
		       
		         //<h2> <a href = "motto:andy@clearleft.com">Andy buGG</a></h2>   转换的目标格式
                 //<a href = "http://www.pzhu.cn">http://www.pzhu.cn</a>
                 var result = request.responseText;
                 var Object = eval("("+result+")");
                 
                 //结果不能使用,必须创建相应节点,再放到#details中
                 var name = Object.person.name;
                 var website = Object.person.website;
                 var email = Object.person.email;
                 
                 
                 var aNode = document.createElement("a");
                aNode.appendChild(document.createTextNode(name));
                aNode.href = website;
                 
                 var h2Node = document.createElement("h2");
                 h2Node.appendChild(aNode);
                 
                 var aNode2 = document.createElement("a");
                 aNode2.appendChild(document.createTextNode(email));
                 aNode2.href = website;
                 
                 var detailsNode = document.getElementById("details");
                 detailsNode.innerHTML = "";
                 detailsNode.appendChild(h2Node);
                 detailsNode.appendChild(aNode2);
		       }   
		    }
		  }
		  return false ;
		}
	   }
     }
    
  </script>

  </head>
  
  <body>
      <ul>
   <li> <a href = "andy.js">Andy</a></li>
   <li> <a href = "tom.js">Tom</a></li>
       <br><br><br>
   <div id = "details"></div>
  </ul>
  </body>
</html>

Json数据格式:

//andy.js
{"person":{
	"name":"andy",
	"website":"http://pzhu.cn",
	"email":"andy@clearleft"
}
}




三种数据格式的比较:

HTML:若应用程序不需要与其他应用程序数据共享,则优选。

JSON:若数据重用,则优选。

XML:远程应用程序未知时,则优选;因为xml是web领域的世界语。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏油

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值