模板引擎 ajax 比较,第115天:Ajax 中artTemplate模板引擎(一)

一、不分离与分离的比较

1、前后端不分离,以freemarker模板引擎为例,看一下不分离的前后端请求的流程是什么样的?

ba8c1ad221ce35a1d5e9aeb01add0620.png

从上图可以看出,前后端开发人员的工作耦合主要在(3)Template的使用。

后端程序员和前端程序员会出现同时修改template的情况,这样就造成了前后端的耦合,不利于快速开发和静态展示。

2、前后端分离,以artTemplate为例

ed99995fc0f66a7986e91430e1c8e232.png

一旦前后端分离了(如上图),前端只需要关注rest接口以及返回的json数据即可。所以前端程序员可以通过自定义json实现简单的预览与展示,这样就解决了前后端的耦合,前后端只通过接口进行交互。

二、artTemplate的介绍与安装

artTemplate是比较轻量级的前端引擎技术,相比较于vue等框架,这个技术就是轻量级的;但是却具备了开发web前端的所有渲染技术,性能也很出色,最重要的是很容易掌握。官方文档 https://aui.github.io/art-template/docs/

Windows平台安装与使用artTemplate实现前后端分离

1、安装NodeJs并安装

可以从官网下载,也可以从这里下载,双击安装即可!

2、安装artTemplate(Tmod)

通过CMD进入NodeJs的安装目录,执行如下命令

npm install -g tmodjs

执行完成后,即可使用 tmod 进行HTML编译了;编译后的文件是template.js,通过在HTML中引用template.js,即可实现前端引擎解析json数据,从而实现前后端分离;我们来看个例子:

3、下载源码以及代码说明

可以直接下载源码进行阅读;代码中有注释和详解(当然也可以参考 “4、demo代码详解”)。双击index.html即可运行。

下载链接:http://pan.baidu.com/s/1pLr4dbt 密码:2nst

c6a5f3bce2e6f11b5160e3c4ea23a25a.png

template下的所有 .html 文件都会编译到 template.js文件中(每次编辑.html文件,都会自动编译):

65dd6b3f71d2b575f7d3fe2aa0f5164f.png

如果已经明白了源码,“4、demo代码详细” 可以忽略

4、demo代码详细

一个简单的网站首页:index0.html,正常的网页代码应该是这样的:

  • 我的菜单1
  • 我的菜单2
  • 我的菜单3

如何用artTemplate解决前后端耦合的问题:

1)在template文件夹中(模板文件一般都放在其中),新建header.html文件,内容如下:

  • {{menu1}}
  • {{menu2}}
  • {{menu3}}

2)通过CMD进入template文件夹,执行tmod . 即可编译成template.js:

tmod .

673b4be81539f31f44126945021d3774.png

3)在index.html中引入 template.js 即可使用模板引擎解析json数据了,代码如下:

//Jquery在页面加载完成后执行;

jQuery(document).ready(function($){

/**

*1)一般data 是通过 ajax 请求后台rest接口的数据;

*2)也可以通过ajax请求 json文件 实现;

*3)我们这里暂时写死;(前2种后面文章做介绍)

**/

var data = {menu1:'我的菜单1',menu2:'我的菜单2',menu2:'我的菜单3'};

//渲染数据,template返回值是HTML

var headerHTML =template('header',data);

$('#headerDIV').html(headerHTML);//内容插入到 headerDIV标签中

});

ajax配合art-template模板引擎的使用

最近才接触js的模板引擎听说相比以前使用的js foreach加载后台返回的json数据简便很多而且效率方面也很不错.今天自己玩了一下 后台使用的是.net mvc,数据库脚本就不提供了,返回的Jso ...

Express 中配置使用 art-template模板引擎

art-template 官网 https://aui.github.io/art-template/ 安装: npm install --save art-template npm install ...

artTemplate模板引擎学习实战

在我的一篇关于智能搜索框异步加载数据的文章中,有博友给我留言,认为我手写字符串拼接效率过低,容易出错.在经过一段时间的摸索和学习之后,发现现在拼接字符串的方法都不在是自己去书写了,而是使用Javasc ...

koa art-template模板引擎的使用

art-template 模板引擎介绍 art-template 是一个简约.超快的模板引擎. 它采用作用域预声明的技术来优化模板渲染速度,从而获得接近 JavaScript 极限的运行 性能,并且同 ...

Node学习之(第三章:art-template模板引擎的使用)

前言 大家之前都有使用过浏览器中js模板引擎,其实在Node.js中也可以使用模板引擎,最早使用模板引擎的概念是在服务端新起的. art-template art-template是一款高性能的Jav ...

artTemplate模板引擎

artTemplate模板引擎         

索引 {{i + 1}} :{{value}}     {{/each}} ...

Express ( MiddleWare/中间件 路由 在 Express 中使用模板引擎 常用API

A fast, un-opinionated, minimalist web framework for Node.js applications. In general, prefer simply ...

artTemplate模板引擎的源码拜读

最初接触的模板引擎还是基于node的ejs,当时觉得很神奇原来还可以这么玩,后来随着学习的深入,使用过jade,doT等,当然还有一些比较火的诸如juicer.underscore还没有深入接触,直到 ...

Art-Template模板引擎(原生写法与简洁写法)

模板引擎:把js数据转换成html需要的页面,这就是模板引擎需要做的事     • native原生语法     1. 准备数据     2. 把数据转化成html格式的字符串 使用模板引擎 artT ...

随机推荐

python httplib get和post获取数据

httplib 下的 status http请求的状态  200 404 500... reason 返回答复 OK或者 FAULRE read()  读取内容 get方法: #!/usr/bin/e ...

php阳历转农历的类 谷歌到的

UIApplication详解

每个app有且只有一个UIApplication对象,当程序启动的时候通过调用UIApplicationMain方法得到的.可以通过sharedApplication方法得到. UIApplicati ...

【C#】VS2015开发环境的安装和配置(二)2016-08-03更新

分类:C#.VS2015.WPF.ASP.NET MVC.Android.iOS.Unity3D: 更新日期:2016-08-03 按下面介绍的步骤安装即可. 一.安装JDK和Android SDK ...

VMware学习笔记(一)

vmware核心产品是vSphere,而vSphere主要包括ESXi和vCenterServer. ESXi不依赖其它操作系统OS,安装在每一台物理机上,ESXi是免费的.在ESXi主机上再安装vS ...

iphone 使用 soap 服务 介绍

iphone 使用 soap 服务 介绍 目前比较常用的有几个办法: 1. WSDL to Objective C自动根据wsdl文件生成ios可以直接调用的Objective-C (Cocoa) 代 ...

【leetcode❤python】 Maximum Depth of Binary Tree

#-*- coding: UTF-8 -*- # Definition for a binary tree node.# class TreeNode(object):#     def __init ...

Windows系统的线程调度与软件中断分发

在Windows操作系统内核把软件中断分为三个中断级别:DISPATCH_LEVEL,APC_LEVEL,PASSVIE_LEVEL.同时他们与线程的调试相关,WINDOWS内核中没有一个专门的程序来 ...

C++实现堆排序

堆排序是合并排序和插入排序排序方法共同的长处.它的时间复杂度O(nlgn),这也是一个地方排序算法:在任何时候,外阵中拥有唯一不变的输入数组存储的元素.引进第一家引进什么样的堆堆. 1.建堆:堆数据结 ...

Vxlan与网卡offload性能

背景 由于数据链路层MTU的限制,发送端TCP/UDP数据在交付到IP层时需要与MTU相匹配,TCP数据不能超过mss,较长的UDP需要分片(Fragmentation)以满足MTU要求:接收端协议栈 ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值