JS模板引擎BaiduTemplate和ArtTemplate對(duì)比及應(yīng)用

     最近做項(xiàng)目用了JS模板引擎渲染HTML,JS模板引擎是在去年做項(xiàng)目是了解到的,但一直沒(méi)有用,只停留在了解層面,直到這次做項(xiàng)目才用到,JS模板引擎用了兩個(gè) BaiduTemplate 和 ArtTemplate。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比武安網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式武安網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋武安地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。

     項(xiàng)目之初用的是BaiduTemplate引擎,項(xiàng)目完成后發(fā)布到互聯(lián)網(wǎng),發(fā)現(xiàn)數(shù)據(jù)量大時(shí),加載速度慢了點(diǎn),就考慮換其它模板引擎是否能提高渲染效率,在網(wǎng)上查找、對(duì)比后發(fā)現(xiàn)ArtTemplate更好一點(diǎn),就深入了解與學(xué)習(xí)了下,兩個(gè)引擎語(yǔ)法有點(diǎn)差別,但結(jié)果是一至的,下面具體介紹一下兩個(gè)引擎的使用情況:

一、BaiduTemplate 下載地址:http://tangram.baidu.com/BaiduTemplate/

二、ArtTempate 下載地址:https://github.com/aui/artTemplate

 

性能測(cè)試 http://cdc.tencent.com/?p=5723

JS 模板引擎 BaiduTemplate 和 ArtTemplate 對(duì)比及應(yīng)用

BaiduTemplate 代碼引入

<script type="text/javascript">
    var html;
    var bt = baidu.template;
    $(function () {
        $.ajax({
            type: "GET",
            url: "/Json/Analysis.js",
            dataType: 'json',
            success: function (data) {
                html = bt('t:Jtlm_Analysis', {
                    list: data
                });
                document.getElementById('Jtlm_Analysis').innerHTML = html;
            }
        });
    });
</script>


模板定制

<script id="t:Jtlm_Analysis" type="text/html">
    <% for(var i=0;i< list.length;i++){%>
    <div class="widget-box transparent collapsed">
        <div class="widget-header widget-header-flat">
            <h7 class="orange">
                <a href="/d/d/<%=list[i].Id%>" alt="<%=list[i].Title%>" title="<%=list[i].Title%>" target="_blank"><%=list[i].Title%></a>
            </h7>
            <div class="widget-toolbar">
                <a href="#" data-action="collapse">
                    <i class="icon-chevron-up"></i>
                </a>
                <a href="#" data-action="close">
                    <i class="icon-remove"></i>
                </a>
            </div>
            <div class="widget-toolbar">
                <a>
                    發(fā)布時(shí)間:<%=list[i].UpdateOn%>
                </a>
            </div>
        </div>
        <div class="widget-body">
            <div >
                <div class="widget-main">
                    <p class="alert alert-success">
                        <%=list[i].Summary%>【<a href="/d/d/<%=list[i].Id%>" target="_blank">詳情</a>】
                    </p>
                </div>
            </div>
        </div>
    </div>
    <%}%>
</script>

渲染結(jié)果

JS 模板引擎 BaiduTemplate 和 ArtTemplate 對(duì)比及應(yīng)用

ArtTemplate 代碼引入

$.ajax({
            type: "GET",
            url: "Json/HomeJsonFirst.js?r=" + Math.random(),
            dataType: 'json',
            success: function (data) {
                //Tab 切換
                html = template('t:layout_2', {
                    list: data.Layout_2
                });
                document.getElementById('layout_2').innerHTML = html;
                //看點(diǎn)
                html = template('t:layout_6', {
                    title: JLConsts.Group_Layout_6_Name,
                    list: data.Layout_6
                });
                document.getElementById('layout_6').innerHTML = html;
                //開(kāi)心一刻
                html = template('t:layout_7', {
                    title: JLConsts.Group_Layout_7_Name,
                    list: data.Layout_7
                });


ArtTemplate 模板

<script id="t:layout_8" type="text/html">
    <h5>`title`<i></i></h5>
    {{each list as value i}}
    <dl class="cf">
        {{each value.HList as a i}}
        <dd>
            <a title="`a`.`Title`" alt="`a`.`Title`" target="_blank" href="/Detail/d/`a`.`Id`">
                <img src="`a`.`ImgSrc`" title="`a`.`Title`" alt="`a`.`Title`" />
            </a>
        </dd>
        <dt>
            <a target="_blank" href="/Detail/d/`a`.`Id`" title="`a`.`Title`" alt="`a`.`Title`">`a`.`Title`</a>
        </dt>
        {{/each}}
    </dl>
    <ul>
        {{each value.List as l i}}
        <li>
            {{each l.List as a i}}
            <a title="`a`.`Title`" alt="`a`.`Title`" target="_blank" href="/Detail/d/`a`.`Id`">`a`.`Title`</a>
            {{/each}}
        </li>
        {{/each}}
    </ul>
    {{/each}}
</script>

渲染結(jié)果

JS 模板引擎 BaiduTemplate 和 ArtTemplate 對(duì)比及應(yīng)用

 

基本遍歷模板

JS 模板引擎 BaiduTemplate 和 ArtTemplate 對(duì)比及應(yīng)用

多層遍歷模板

JS 模板引擎 BaiduTemplate 和 ArtTemplate 對(duì)比及應(yīng)用

簡(jiǎn)單的 if else

JS 模板引擎 BaiduTemplate 和 ArtTemplate 對(duì)比及應(yīng)用

Json構(gòu)造結(jié)果

 JS 模板引擎 BaiduTemplate 和 ArtTemplate 對(duì)比及應(yīng)用

通過(guò)對(duì)比,ArtTemplate渲染的速度更快一點(diǎn),對(duì)于不經(jīng)常更新的數(shù)據(jù),我們可以采用定時(shí)生成Json,通過(guò)ArtTemplate引擎進(jìn)行渲染,這樣可以大大提高網(wǎng)站的訪問(wèn)速度,

案例賞析   

網(wǎng)站題目:JS模板引擎BaiduTemplate和ArtTemplate對(duì)比及應(yīng)用
文章轉(zhuǎn)載:http://muchs.cn/article14/gdeede.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計(jì)手機(jī)網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、定制開(kāi)發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)