了解Ajax響應(yīng)數(shù)據(jù)的渲染及模板引擎

Ajax的響應(yīng)數(shù)據(jù)格式有:

  • XML,一種數(shù)據(jù)描述的手段,缺點:數(shù)據(jù)冗余太多。

  • JSON(JavaScript Object Notation,JavaScript)對象表示法,數(shù)據(jù)描述的手段,類似于JavaScript字面量方式。服務(wù)端采用JSON格式返回數(shù)據(jù),客戶端按照J(rèn)SON格式解析數(shù)據(jù)。

這些數(shù)據(jù)協(xié)議都是Ajax在請求過程中會用到的,所以當(dāng)服務(wù)器發(fā)出某種格式的數(shù)據(jù)時,客戶端就可以采用JavaScript相應(yīng)的方法解析這種格式。

JSON Server

  • json-server 是一個Node模塊,運行Express服務(wù)器,可以指定一個json文件作為api的數(shù)據(jù)源。我們可以用它快速搭建一個web服務(wù)器。json-server的學(xué)習(xí)使用手冊https://github.com/typicode/json-server

響應(yīng)數(shù)據(jù)的渲染

客戶端拿到請求到的數(shù)據(jù)之后就需要把這些數(shù)據(jù)渲染到頁面上。

??簡單的數(shù)據(jù)結(jié)構(gòu),可以采用字符串拼接的方式處理。

??復(fù)雜的數(shù)據(jù),可以使用模板引擎或ES6提供的模板字符串進(jìn)行處理。

這里使用字符串拼接的方式,來將獲取的響應(yīng)數(shù)據(jù)進(jìn)行頁面渲染。

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);
        //循環(huán) 遍歷數(shù)組
        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>";

            //第二種 采用 模板字符串 進(jìn)行拼接
            str += `<tr>
                      <td>${data[i].id}</td>
                      <td>${data[i].name}</td>
                      <td>${data[i].class}</td>
                   </tr>` 
        }
        box.innerHTML += str;
    }
}
   

?上述的字符串拼接,當(dāng)數(shù)據(jù)少時可以使用,但當(dāng)數(shù)據(jù)復(fù)雜又多時,字符串拼接就顯得復(fù)雜又易出錯了。所以模板引擎的使用就解決了 這一問題。

模板引擎

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

           在模板里解析json,然后跟html內(nèi)容拼接,性能會更好
    

artTemplate

  • art-Template是一個簡約、快速的模板引擎。

  • 中文使用文檔:artTemplate中文使用文檔

  • 將邏輯表達(dá)式語句寫在<% 與 %>符號中

    將輸出表達(dá)式寫在<%= content%>中

  • 使用步驟:

    ①引入模板文件

    ②創(chuàng)建模板

    ③將數(shù)據(jù)跟模板進(jìn)行綁定

    ④在模板里編寫代碼解析數(shù)據(jù)

    ⑤綁定數(shù)據(jù)和模板之后得到內(nèi)容

    ⑥將數(shù)據(jù)內(nèi)容寫到頁面上。

關(guān)于模板引擎的使用及優(yōu)勢,可以參考留言板代碼這個案例:留言板主要部分代碼

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容