EJS模板引擎

我们经常会使用AJAX/JSONP等技术,从服务器端获取到我们所需要的数据,然后把数据动态的展示在对应页面中。

1.不依托JS,而是使用PHP/Ruby/Python/JSP等技术实现数据的绑定(没有前后端分离)

2.JS代码中进行字符串拼接

这种方式属于前后端分离,在JS中获取到服务器端返回的数据后,把之前在HTML页面中写好的标签,一句句的复制到JS中,用字符串拼接的方式,把标签和数据拼接在一起,最后在把拼接完成的字符串插入到页面中指定的位置。但是这种处理方式对于简单的字符串拼接还是可以的,但是如果遇到非常复杂的,就不适用了。

这种方式有一种弊端:开发效率低,后期不好改动,JS代码结构很乱,不易于后期的维护,用此动态创建元素借点的方式,还会引发多次的DOM回流,影响页面的性能

<header class="header">  
    <h1>  
        <span>编号</span>  
        <span>姓名</span>  
        <span>性别</span>  
        <span>分数</span>  
    </h1>  
</header>  
<section class="content">  
    <ul>  
        <!--这里动态加载节点-->  
        <!--<li>  
            <span>001</span>  
            <span>消愁</span>  
            <span>男</span>  
            <span>88</span>  
        </li>-->  
    </ul>  
</section>

<script src="js/zepto.min.js" type="text/javascript"></script>  
<script type="text/javascript">  
    function bindHTML(data) {  
        var str = "";  
        $.each(data, function (index, item) {  
            str += '<li>';  
            str += '<span>' + item.num + '</span>';  
            str += '<span>' + item.name + '</span>';  
            str += '<span>' + (item.sex==0?'男':'女') + '</span>';  
            str += '<span>' + item.score + '</span>';  
            str += '</li>';  
        });  
        $(".content>ul").html(str);  
    }  
    $.ajax({  
        url: 'json/data.json',  
        type: 'get',  
        dataType: 'json',  
        cache: false,  
        success: bindHTML  
    });  
</script>

实现的效果:



3.使用模板引擎绑定数据和渲染数据

模板引擎的原理其实也是字符串拼接,但是和第二种不同的是,它不是把字符串在JS代码中拼接,而是先在HTML页面中,按照模板提供的规则把数据内容嵌入到HTML标签中。最后由模板解析成需要的字符串,在JS中把解析出来的字符串放入到页面中的指定位置进行渲染。

EJS模板引擎

EJS(Embedded JavaScript)也是众多模板中的一种,它主要是NODE开源的模板,在NODE环境下实现绑定和渲染的。但是它也可以单独的在客户端调取使用,我们接下来就介绍独立在客户端的使用

在客户端使用EJS主要分成四步:

1.导入EJS

EJS的源码大家可以去它的官网进行下载:http://www.embeddedjs.com/(但是我下载不了)

2.准备需要绑定的数据

在真实项目中,这一步需要使用AJAX或者JSONP等技术从服务器获取,然后把获取回来的数据进行解析重构

3.在HTML页面中设定模板和嵌入数据

模板有自己的渲染规则,我们把需要写的JS循环判断放在<%%>中,如果需要输出用<=%%>,其实非常简单就是把之前的字符串拼接方式中的JS写在了HTML中,这样EJS负责把模板中的内容获取到,然后按照规则把数据和HTML标签拼凑在一起就好

4.在JS中为EJS模板提供需要绑定的数据

<!--第一步-->
<script type="text/javascript" src="js/ejs.min.js"></script>
<!--第三步-->
<script type="text/template" id="conTemplate">
    <%$.each(matchData,function(index,item){%>
    <li>
        <span><%=item.num%></span>
        <span><%=item.name%></span>
        <span><%=item.sex%></span>
        <span><%=item.score%></span>
    </li>
    <%})%>
</script>
<script src="js/zepto.min.js" type="text/javascript"></script>
<script type="text/javascript">
    //    rem
    document.documentElement.style.fontSize = document.body.clientWidth / 320 * 100 + "px";
    //    第四步
    function bindHTML(data) {
        var conTemplate = $("#conTemplate").html();
        var result = ejs.render(conTemplate, {matchData: data});
        $(".content>ul").html(result);
    }
    //    第二步
    $.ajax({
        url: 'json/data.json',
        type: 'get',
        dataType: 'json',
        cache: false,
        success: bindHTML
    });
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,使用EJS模板引擎生成购物车页面,步骤如下: 1. 首先安装EJS模板引擎,可以使用npm命令进行安装: ``` npm install ejs --save ``` 2. 在项目中创建一个名为“views”的文件夹,用于存放EJS模板。 3. 在views文件夹中创建一个名为“cart.ejs”的文件,用于生成购物车页面。 4. 在cart.ejs文件中编写HTML代码和EJS模板语句,例如: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>购物车</title> </head> <body> <h1>购物车</h1> <ul> <% for(var i=0; i<cart.length; i++) { %> <li><%= cart[i].name %> - <%= cart[i].price %>元</li> <% } %> </ul> <p>总价: <%= total %>元</p> </body> </html> ``` 在模板中,使用了EJS的语法,包括“<% %>”表示代码块,以及“<%= %>”表示输出变量值。 5. 在Node.js中编写代码,将购物车数据传递给模板,并生成HTML页面,例如: ```javascript const express = require('express'); const app = express(); const ejs = require('ejs'); app.set('view engine', 'ejs'); app.get('/cart', function(req, res) { const cart = [ { name: '商品1', price: 10 }, { name: '商品2', price: 20 }, { name: '商品3', price: 30 } ]; const total = cart.reduce((sum, item) => sum + item.price, 0); res.render('cart', { cart, total }); }); app.listen(3000, function() { console.log('Server started on port 3000'); }); ``` 在代码中,首先设置EJS模板引擎,然后在“/cart”路由中将购物车数据传递给模板“cart”,并渲染生成HTML页面。 6. 运行Node.js应用程序,访问“http://localhost:3000/cart”即可查看生成的购物车页面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值