模板的工作原理可以简单地分成两个步骤:模板解析(翻译)和数据渲染。这两个步骤可分别部署在前端或后端来执行。如果放在后端执行,则是像Smarty,FreeMarker这样的后端模板引擎,而如果放在前端来执行,则是我们要探讨的前端模板。
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写,模板用servlet提供的数据动态地生成 HTML,模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。这里不再对后端模版进行描述。
前端模版提高了前端开发的可维护性(后期改起来方便)以及可扩展性(想要增加功能,增加需求方便);提高了开发效率提高(程序逻辑组织更好,调试方便);最重要的一点就是:【视图(包括展示渲染逻辑)与程序逻辑的分离】。好处是减轻服务器负担,坏处是可能不利于seo以及模版错误不好调试。
当今前端模版主要有三类:
-String-based 模板技术 (基于字符串的parse和compile过程) -Dom-based 模板技术 (基于Dom的link或compile过程) -杂交的Living templating 技术 (基于字符串的parse 和 基于dom的compile过程)。
一.前端模版的演变
传统的前端开发方式是通过通过ajax获取数据进行繁琐的数据渲染。随着前端页面的交互越来越繁杂,页面无刷新的传输与页面的显然也越发的频繁,导致页面性能低下。即当前端从后台通过ajax等方式获取到数据更新后,都需要将这个数据渲染到指定的dom元素中,需要重新进行各种字符串拼接工作或者一系列创建元素的工作,这种方式是繁琐且费时的。这种在可读性和维护性上也存在问题。
基于字符串的模板引擎最大的功劳就是把你从大量的夹带逻辑的字符串拼接中解放出来了,由于它的完全基于字符串的特性,它拥有一些无可替代的优势。如下的字符串拼接:
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26
学习是年轻人改变自己的最好方式