数据交换格式&XML(重量级)

  • 问题:
    • 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;
?>
  • 存在问题:虽然可以描述和传输复杂数据,但是其解析过于复杂并且体积较大。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容