zoukankan      html  css  js  c++  java
  • Ajax——异步基础知识(二)

    XML数据格式

    • 首行必须是版本号和格式等信息
    <?xml version="1.0" encoding="utf-8" ?>
    • 最外层需要一个根节点进行包裹
    • 标签有开头有结尾,效率低下
    • php中设置header需要将content-type设置成text/xml
    header("content-type:text/xml;charset=utf-8");
    • 浏览器读取XML文件是用ajax.responseXML
    • 浏览器接收到的是文档树,可以用访问节点的方式获取值

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            body{
                text-align: center;
            }
            div{
                width: 500px;
                height: 100px;
                margin: 0 auto;
                text-align: center;
            }
            td{
                border: 1px solid #000;
            }
            table{
                text-align: center;
                width: 500px;
                border-collapse: collapse;
            }
        </style>
    </head>
    <body>
    <div></div>
    <button>获取xml文件数据</button>
    <script>
        var btn = document.getElementsByTagName("button")[0];
        btn.onclick = function () {
            var ajax = new XMLHttpRequest();
            ajax.open('get', '03.php');
            ajax.send();
            ajax.onreadystatechange = function (ev) {
                if (ajax.readyState=4&&ajax.status==200) {
                    var msg=ajax.responseXML;
                    console.log(msg);
                    var str="";
                    str+="<table>";
                    var persons=msg.querySelectorAll('person');
                    for (var i = 0; i < persons.length; i++) {
                        str+="<tr>";
                        str+="<td>"+persons[i].children[0].innerHTML+"</td>";
                        str+="<td>"+persons[i].children[1].innerHTML+"</td>";
                        str+="<td>"+persons[i].children[2].innerHTML+"</td>";
                        str+="</tr>";
                    }
                    str+="</table>"
                    var div=document.getElementsByTagName("div")[0];
                    div.innerHTML=str;
                }
            }
        }
    </script>
    </body>
    </html>
    <?php
      header("content-type:text/xml;charset=utf-8");
      echo file_get_contents('files/01.xml');
    ?>
    <?xml version="1.0" encoding="utf-8" ?>
    <personXML>
        <person>
            <name>zs1</name>
            <age>17</age>
            <sex>nan</sex>
        </person>
        <person>
            <name>zs2</name>
            <age>18</age>
            <sex>nan</sex>
        </person>
        <person>
            <name>zs3</name>
            <age>19</age>
            <sex>nan</sex>
        </person>
    </personXML>

    JSON数据格式

    • 格式上可以是标准的json字符串,也可以组成数组
    [
      {"name":"zs1","age":17,"sex":"nan"},
      {"name":"zs2","age":17,"sex":"nan"},
      {"name":"zs3","age":17,"sex":"nan"}
    ]
    • 基本上所有语言都可以将JSON字符串转化为该语言的对象进行访问
    var msg = JSON.parse(ajax.responseText);//将json字符串转化为js对象
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            body {
                text-align: center;
            }
    
            div {
                width: 500px;
                height: 100px;
                margin: 0 auto;
                text-align: center;
            }
    
            td {
                border: 1px solid #000;
            }
    
            table {
                text-align: center;
                width: 500px;
                border-collapse: collapse;
            }
        </style>
    </head>
    <body>
    <div></div>
    <button>点击获取json数据</button>
    <script>
        var btn = document.getElementsByTagName("button")[0];
        btn.onclick = function () {
            var ajax = new XMLHttpRequest();
            ajax.open('post', '04.php');
            ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            ajax.send();
            ajax.onreadystatechange = function (ev) {
                if (ajax.readyState == 4 && ajax.status == 200) {
                    console.log(ajax.responseText);
                    var msg = JSON.parse(ajax.responseText);
                    var str = "";
                    str += "<table>";
                    for (var i = 0; i < msg.length; i++) {
                        str += "<tr>";
                        str += "<td>" + msg[i]["name"] + "</td>";
                        str += "<td>" + msg[i]["age"] + "</td>";
                        str += "<td>" + msg[i]["sex"] + "</td>";
                        str + "</tr>";
                    }
                    str += "</table>";
                    var div = document.getElementsByTagName("div")[0];
                    div.innerHTML = str;
                }
            }
        }
    </script>
    </body>
    </html>
    <?php
      header("content-type:text/html;charset=utf-8");
      echo file_get_contents('files/02.json');
    ?>
    [
      {"name":"zs1","age":17,"sex":"nan"},
      {"name":"zs2","age":17,"sex":"nan"},
      {"name":"zs3","age":17,"sex":"nan"}
    ]

  • 相关阅读:
    剑指offer-整数中1出现的次数
    数据流中的中位数
    二叉搜索树的后序遍历序列
    Java 线程阻塞和唤醒
    Java 线程池
    Python哈希表和解析式
    Python线性数据结构
    python 基础知识
    pyenv虚拟环境管理python多版本和软件库
    Paramiko的SSH和SFTP使用
  • 原文地址:https://www.cnblogs.com/wuqiuxue/p/8143041.html
Copyright © 2011-2022 走看看