zoukankan      html  css  js  c++  java
  • 了解Ajax响应数据的渲染及模板引擎

    Ajax的响应数据格式有:

    • XML,一种数据描述的手段,缺点:数据冗余太多。

    • JSON(JavaScript Object Notation,JavaScript)对象表示法,数据描述的手段,类似于JavaScript字面量方式。服务端采用JSON格式返回数据,客户端按照JSON格式解析数据。

    这些数据协议都是Ajax在请求过程中会用到的,所以当服务器发出某种格式的数据时,客户端就可以采用JavaScript相应的方法解析这种格式。

    JSON Server

    • json-server 是一个Node模块,运行Express服务器,可以指定一个json文件作为api的数据源。我们可以用它快速搭建一个web服务器。json-server的学习使用手册https://github.com/typicode/json-server

    响应数据的渲染

    客户端拿到请求到的数据之后就需要把这些数据渲染到页面上。

      简单的数据结构,可以采用字符串拼接的方式处理。

      复杂的数据,可以使用模板引擎或ES6提供的模板字符串进行处理。

    这里使用字符串拼接的方式,来将获取的响应数据进行页面渲染。

    var box = document.getElementById("box");
    var xhr = new XMLHttpRequest();
    xhr.open("GET","http://localhost:3000/users");
    xhr.send(null);
    xhr.onreadystatechange = function(){
         if(xhr.readyState == 4){
            var data = JSON.parse(this.responseText);
            var str = "";
            console.log(data);
            //循环 遍历数组
            for(var i = 0;i < data.length;i ++){
                //第一种 采用字符串拼接
                // str += "<tr><td>" + data[i].id + "</td >" + 
                //     "<td>" + data[i].name + "</td>" + 
                //     "<td>" + data[i].class + "</td></tr>";
    
                //第二种 采用 模板字符串 进行拼接
                str += `<tr>
                          <td>${data[i].id}</td>
                          <td>${data[i].name}</td>
                          <td>${data[i].class}</td>
                       </tr>` 
            }
            box.innerHTML += str;
        }
    }
       
    

     上述的字符串拼接,当数据少时可以使用,但当数据复杂又多时,字符串拼接就显得复杂又易出错了。所以模板引擎的使用就解决了 这一问题。

    模板引擎

    • 作用:减少字符串拼接;

      ​ 在模板里解析json,然后跟html内容拼接,性能会更好

    artTemplate

    • art-Template是一个简约、快速的模板引擎。

    • 中文使用文档:artTemplate中文使用文档

    • 将逻辑表达式语句写在<% 与 %>符号中

      将输出表达式写在<%= content%>中

    • 使用步骤:

      ①引入模板文件

      ②创建模板

      ③将数据跟模板进行绑定

      ④在模板里编写代码解析数据

      ⑤绑定数据和模板之后得到内容

      ⑥将数据内容写到页面上。

    关于模板引擎的使用及优势,可以参考留言板代码这个案例:留言板主要部分代码

  • 相关阅读:
    移动性能测试 | 持续集成中的 Android 稳定性测试
    iOS 测试 | iOS 自动化性能采集
    Google 测试总监聊如何经营成功的测试职业生涯
    浅谈一下可扩展性网站架构设计
    一条SQL执行慢的原因有哪些
    为什么在做微服务设计的时候需要DDD?
    是时候拥抱.NET CORE了
    MySql多表查询优化
    九种高性能可用高并发的技术架构
    HTTP协议总结
  • 原文地址:https://www.cnblogs.com/dreamtown/p/14729506.html
Copyright © 2011-2022 走看看