html中模板引擎—前端与后端

模板引擎

模板引擎 起到 数据和视图分离的作用, 模板对应视图, 关注如何展示数据, 在模板外头准备的数据, 关注那些数据可以被展示。

 

后端模板引擎

freemarker

如下介绍,  java后台的模板引擎, freemark介绍,其图能很好标明这种关系。

http://freemarker.org/

Apache FreeMarker is a template engine: a Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data. Templates are written in the FreeMarker Template Language (FTL), which is a simple, specialized language (not a full-blown programming language like PHP). You meant to prepare the data to display in a real programming language, like issue database queries and do business calculations, and then the template displays that already prepared data. In the template you are focusing on how to present the data, and outside the template you are focusing on what data to present.

 

velocity

另外一个 java模板引擎, velocity:

http://velocity.apache.org/

velocity是一个基于java的模板引擎, 它允许任何人使用简单但是强大的 模板语言, 引用 java代码中的对象。

Velocity is a Java-based template engine. It permits anyone to use a simple yet powerful template language to reference objects defined in Java code.

 

按照MVC的思想分离任务, web页面开发者关注如何将页面做的好看, 业务开发者关注写首要的逻辑代码。

其对 JSP代码是一种取代。

When Velocity is used for web development, Web designers can work in parallel with Java programmers to develop web sites according to the Model-View-Controller (MVC) model, meaning that web page designers can focus solely on creating a site that looks good, and programmers can focus solely on writing top-notch code. Velocity separates Java code from the web pages, making the web site more maintainable over its lifespan and providing a viable alternative to Java Server Pages (JSPs) or PHP.

 

不仅仅可以做HTML模板, 也可以做XML和sql其它重复性代码生成工具。

Velocity's capabilities reach well beyond the realm of the web; for example, it can be used to generate SQL, PostScript and XML from templates.

 

前端模板引擎

随着前端技术发展, 和前端处理能力增强, 越来越多的 渲染逻辑在浏览器端实现, 由此出现前端模板引擎, 仿照后台模板引擎方法, 定义前端模板语言, 实现前端模板引擎。

 

arttemplate

https://github.com/aui/artTemplate

新一代 javascript 模板引擎

编写模板

使用一个type="text/html"script标签存放模板:

<script id="test" type="text/html">
<h1>{{title}}</h1>
<ul>
    {{each list as value i}}
        <li>索引 {{i + 1}} :{{value}}</li>
    {{/each}}
</ul>
</script>
渲染模板
var data = {
    title: '标签',
    list: ['文艺', '博客', '摄影', '电影', '民谣', '旅行', '吉他']
};
var html = template('test', data);
document.getElementById('content').innerHTML = html;

演示

示例:  http://aui.github.io/artTemplate/demo/basic.html

 

arttemplate 性能介绍

http://cdc.tencent.com/2012/06/15/%e9%ab%98%e6%80%a7%e8%83%bdjavascript%e6%a8%a1%e6%9d%bf%e5%bc%95%e6%93%8e%e5%8e%9f%e7%90%86%e8%a7%a3%e6%9e%90/

artTemplate 介绍

artTemplate 是新一代 javascript 模板引擎,它采用预编译方式让性能有了质的飞跃,并且充分利用 javascript 引擎特性,使得其性能无论在前端还是后端都有极其出色的表现。在 chrome 下渲染效率测试中分别是知名引擎 Mustache 与 micro tmpl 的 25 、 32 倍。

 

art-template结合tomjs编译工具效果更佳

https://github.com/aui/tmodjs/

如果在页面中维护很多 <script>模板端段, 则会很庞大, 且解析效率不佳:

此工具允许各个模板独自文件管理, 然后精怪此工具合并压缩, 成为一个可引用的模板文件:

使用默认的格式

TmodJS 默认将整个目录的模板压缩打包到一个名为 template.js 的脚本中,可直接在页面中使用它:

<script src="tpl/build/template.js"></script>
<script>
    var html = template('news/list', _list);
    document.getElementById('list').innerHTML = html;
</script>

template.js 还支持 RequireJS、SeaJS、NodeJS 加载。示例

 

指定格式(amd / cmd / commonjs)

此时每个模板就是一个单独的模块,无需引用 template.js:

var render = require('./tpl/build/news/list');
var html = render(_list);

 

 

jquery template模板引擎

http://www.cnblogs.com/FoundationSoft/archive/2010/05/19/1739257.html

http://www.cnblogs.com/whitewolf/archive/2011/10/09/2204185.html

https://github.com/BorisMoore/jquery-tmpl

 

复制代码
    <!DOCTYPE html>
    <html>
    <head>
      <script src="http://code.jquery.com/jquery-latest.min.js"></script>
      <script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script>
    </head>
    <body>

    <ul id="movieList"></ul>

    <script>
      var movies = [
      { Name: "The Red Violin", ReleaseYear: "1998" },
      { Name: "Eyes Wide Shut", ReleaseYear: "1999" },
      { Name: "The Inheritance", ReleaseYear: "1976" }
      ];

    var markup = "<li><b>${Name}</b> (${ReleaseYear})</li>";

    /* Compile the markup as a named template */
    $.template( "movieTemplate", markup );

    /* Render the template with the movies data and insert
       the rendered HTML under the "movieList" element */
    $.tmpl( "movieTemplate", movies )
      .appendTo( "#movieList" );
    </script>

    </body>
    </html>
复制代码
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 前端后端互联可以通过 HTTP 协议来实现。前端可以使用 JavaScript 发起 HTTP 请求,后端可以使用各种语言编写 HTTP 服务器,来接收并处理请求。常用的前端 JavaScript 库和框架,如 jQuery,axios,fetch 可以帮助开发者发起 HTTP 请求。常用的后端语言如 Python,Java,C#,Node.js, PHP 可以帮助开发者构建 HTTP 服务器。通过前后端分离的架构,前端后端可以独立开发,同时使用 HTTP 协议来交互数据。 ### 回答2: 实现前端后端的互联可以通过以下几种方式: 1. 前后端分离:将前端后端分为独立的两个项目,前端使用HTML、CSS和JavaScript等技术进行页面的展示和交互,后端负责处理业务逻辑、数据存储和提供接口。前端通过通过Ajax或Fetch等方式向后端发送请求,后端返回JSON或XML格式的数据,前端再将其解析并进行展示。这种方式有利于前后端开发人员分工协作,提高开发效率和可维护性。 2. 服务器端渲染:前端页面由后端生成并返回给浏览器。后端使用模板引擎来渲染页面,将数据动态插入到模板,然后返回给前端。这种方式可以使前后端的交互更紧密,对于SEO优化也比较友好。 3. RESTful API:前后端通过定义统一的接口规范进行数据的交换。前端通过发送HTTP请求(GET、POST、PUT、DELETE)到后端的指定URL来获取或提交数据,后端返回JSON或XML格式的数据。这种方式在不同的前后端项目之间也可以实现互通。 4. WebSocket:通过WebSocket协议在前后端之间建立持久的双向通信连接。前端后端可以通过发送消息来实时更新数据和进行实时通讯。这种方式适用于需要实时交互和推送的场景,比如聊天应用和实时数据监控等。 综上所述,前端后端的互联可以通过前后端分离、服务器端渲染、RESTful API和WebSocket等方式实现,根据具体的需求和技术选择合适的方式。 ### 回答3: 前端后端的互连是通过网络通信来实现的。为了实现前端后端的互联,可以使用以下几种方法: 1. AJAX(Asynchronous JavaScript and XML):利用AJAX技术,前端可以通过异步请求将数据发送到后端后端则通过处理请求返回响应数据,实现前后端的数据传输和交互。 2. RESTful API:使用RESTful风格的API设计,前端可以通过HTTP协议的GET、POST、DELETE、PUT等方法向后端发送请求,后端根据不同的请求方法和参数进行相应的处理和响应。 3. WebSocket:WebSocket是一种在单个TCP连接上进行全双工通信的协议,它允许前端后端建立长连接,实现实时的双向通信,可以用于实时聊天、实时数据更新等场景。 4. 前后端框架:使用流行的前后端框架,如React、Vue.js等,可以通过框架提供的组件、API和工具,快速地建立前后端的连接和交互。 5. 数据格式和接口约定:前后端需要在开发前明确数据的格式和接口的约定,例如使用JSON作为数据格式,定义好请求和响应的数据结构,确保前后端数据的正确传输和解析。 在实际开发前端通常负责用户界面的展示和交互,后端负责业务逻辑的处理和数据的存储和获取。通过以上的方法,可以实现前端后端的互联,将用户的操作和数据传递给后端进行处理,并将处理结果返回给前端展示给用户。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值