- 问题:
- xhr.responseText/responseXML,服务器端, 响应的并不是纯数据, 而是夹带着一些‘界面’,这样不利于数据的重用。
- 引发问题:
- 响应纯文本数据,不能表述每个字段所代表的含义。
数据交换格式(服务器端)
- 解决:自己定义数据编码和解码方式
- 存在问题:不安全,阅读性差,扩展性差
XML(服务器端)
-
解决:
- 1.由于data中保存了我们所需要的数据
- 2.从data中拿到数据,在creatXML中使用规定的格式给数据定义(也就是说数据是怎么排版)。
include 'data.php';
<?php
include 'data.php';
$xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
$xml .= "<goods>\n"; //1
for($i = 0; $i < count($titles); $i ++) {
$xml .= "\t<good>\n"; //2
$xml .= "\t\t<title>"; //a
$xml .= $titles[$i];
$xml .= "</title>\n"; //a
$xml .= "\t\t<image>"; //b
$xml .= $images[$i];
$xml .= "</image>\n"; //b
$xml .= "\t</good>\n"; //2
}
$xml .= "</goods>"; //1
file_put_contents('goods.xml', $xml);
?>
- 3.用file_put_contents('goods.xml', $xml)方法,将编写好的$xml放到goods里面。
在creatXML的页面中使用这个方法,放到goods里面(此时goods里面的数据就是下面的样子)
//例子:
<?xml version="1.0" encoding="utf-8"?>
<goods>
<good>
<title>。。</title>
<image>server/taobaoImg/。。.jpg</image>
</good>
</goods>
- 4.最后服务器端(01-goods-display-server)使用file_get_contents('goods.xml')方法获取goods里面的内容,然后响应给客户端。
<?php
header('Content-Type: text/xml; charset:utf-8');
// 获取文件内容
$xml = file_get_contents('goods.xml');
echo $xml;
?>
- 存在问题:虽然可以描述和传输复杂数据,但是其解析过于复杂并且体积较大。