AJAX(二)--服务器如何返回批量的复合数据给客户端?

本文探讨了服务器向客户端返回批量复合数据的不同方法,包括使用text/plain、text/html、application/xml及application/json等格式,并对比了它们各自的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

服务器如何返回批量的复合数据给客户端?

复合数据:一个数据有多个属性

批量复合数据:有多个复合数据 —— 二维数组 

方式1:用text/plain格式

101#三星#35.5#1.jpg@102#闪迪#34.5#2.jpg@金士顿#...

好处:简单

不足:不易读取、很容易出错

方式2:用text/html格式

<tr><td>101</td><td>三星</td><td>35.5</td></tr>

<tr><td>102</td><td>闪迪</td><td>35.5</td></tr>

<tr><td>103</td><td>金士顿</td><td>35.5</td></tr>

好处:情形,方便使用   tbody.innerHTML = xhr.responseText

不足:把数据和格式混在一起,限制了数据的应用场合

方式3:application/xml格式

<productList>

  <product pid="101">

     <pname>三星</pname>

     <price>35.5</price>

     <pic>1.jpg</pic>

  </product>

  <product pid="102">

     <pname>闪迪</pname>

     <price>34.5</price>

     <pic>2.jpg</pic>

  </product>

</ productList>

好处:是纯数据,不附带任何的显示格式限制

不足:太复杂了,阅读和解析都太麻烦

方式3:application/json格式

[

  {

     "pid":"101",

     "pname":"三星",

     "price":35.5,

     "pic":"1.jpg"

  },

  {

     "pid":"102",

     "pname":"闪迪",

     "price":34.5,

     "pic":"2.jpg"

  }

]

有点:简单、易于阅读,处理速度快!

使用XHR接收五种响应

(1)text/plain

服务器端:

header('Content-Type: text/plain');

echo 'succ';

客户端:

if(xhr.responseText==='succ'){ ... }

(2)text/html

服务器端:

header('Content-Type: text/html');

echo "<tr><td>$data</td></tr>";

客户端:

tbody.innerHTML = xhr.responseText

(3)application/javascript

服务器端:

header('Content-Type: application/javascript');

echo "alert($data); f1(); f2($data)";

客户端:

eval( xhr.responseText )

(4)application/xml

服务器端:

header('Content-Type: application/xml');

echo "<bookList><book>$b</book></bookList>";

客户端:

var document = xhr.responseXML

(5)application/json

服务器端:

header('Content-Type: application/json');

//echo "[ {"bname":"","price":35.5},{} ]";

$list = ...;

echo json_encode($list);

客户端:

var obj = JSON.parse( xhr.responseText )  // JSON格式的字符串解析为JS对象

var obj = {ename:'Tom', age: 20};

var str = JSON.stringify(obj);   // 把JS对象编码为JSON字符串

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值