http://blog.csdn.net/lybwwp/article/details/18813737js模板引擎介绍搜集
js模板引擎越来越多的得到应用,如今已经出现了几十种js模板引擎,国内各大互联网公司也都开发了自己的js模板引擎(淘宝的kissy template,腾讯的artTemplate,百度的baiduTemplate等),如何从这么多纷繁的模板引擎中选择一款适合自己的呢,笔者最近对主流的js模板引擎(mustache,doT,juicer,artTemplate,baiduTemplate,Handlebars,Underscore)做了一番调研,分享出来希望对大家有用。
从这几个指标来比较js模板引擎:
1 文件大小 - 影响网络传输时间
2 执行速度(性能) - 影响响应速度,涉及模板解析和渲染
3 语法简明/易用/灵活/自定义操作符 - 影响开发效率和维护难度
4 错误处理/调试 - 影响开发效率和维护难度
5 安全(XSS) - 是否防止XSS
1 文件大小(压缩后)
Mustache:5k
doT:4k
juicer:7.65k
artTemplate(腾讯):5k
baiduTemplate(百度):3k
Underscore(Arale):11.7k - 不只是模板,还包含很多js语言增强功能
Handlebars(Arale):30.5k
2 执行速度(不要迷恋速度)
对于执行速度,不得不提模板“编译速度”和“渲染速度”。这几个主流模板都支持将模板预编译,然后再渲染。
这里有一篇文章《高性能JavaScript模板引擎原理解析》,说artTemplate的速度达到理论极限,实际说的是渲染速度,它的综合速度并不快。
一般情况下,每页面只有一两个模板,执行时间差别不大。
>>这里<<有个测试页面,根据artTemplate的测试页面《引擎渲染速度竞赛》改的,揭示了几个主流js模板引擎的性能情况,大致结果截图如下:
可以看出artTemplate,juicer,doT比其他模板引擎快很多。
3 语法 简明/易用/灵活/自定义操作符 - 影响开发效率和维护难度
语法需要一段时间的使用经验才能更深切地体会到优缺点,并且每个人喜欢的语法风格也不同,这部分可能略带个人主观色彩。
这几个js模板引擎的语法可以粗略分为两种,一种是类似javascript的语法(doT, artTemplate, underscore),另一种是与javascript差异较大的语法(Mustache, juicer, handlebars)。从易上手的角度来看,类javascript语法更容易被新手掌握,但是熟练掌握之后,各个模板的语法都能满足我们的需求,可以按个人喜好来选择。
Mustache声称是无逻辑(logic-less)模板,没有for、if...else...语法,但实际可以实现循环和分支,还可以实现更复杂的逻辑。
- <!--Mustache 的模板 -->
- <script id="Mustache" type="text/tmpl">
- <ul>
- {{#list}}
- <li>{{{index}}}. 用户: {{{user}}}/ 网站:{{{site}}}</li>
- {{/list}}
- </ul>
- </script>
- <!-- doT 的模板 -->
- <script id="doT" type="text/tmpl">
- <ul>
- {{ for (var val, i = 0, l = it.list.length; i < l; i ++) { }}
- {{ val = it.list; }}
- <li>{{=val[i].index}}. 用户: {{=val[i].user}}/ 网站:{{=val[i].site}}</li>
- {{ } }}
- </ul>
- </script>
- <!--juicer 的模板 -->
- <script id="juicer" type="text/tmpl">
- <ul>
- {@each list as val}
-
<li>
val.index.用户:{val.user}/ 网站:$${val.site}</li>
- {@/each}
- </ul>
- </script>
- <!-- artTemplate 的模板 -->
- <script id="template" type="text/tmpl">
- <ul>
- <% for (i = 0, l = list.length; i < l; i ++) { %>
- <li><%=list[i].index%>. 用户: <%=list[i].user%>/ 网站:<%=list[i].site%></li>
- <% } %>
- </ul>
- </script>
- <!-- underscore 的模板 -->
- <script id="underscoreTemplate" type="text/tmpl">
- <ul>
- <% for (var i = 0, l = list.length; i < l; i ++) { %>
- <li><%=list[i].index%>. 用户: <%=list[i].user%>/ 网站:<%=list[i].site%></li>
- <% } %>
- </ul>
- </script>
- <!-- Handlebars 的模板 -->
- <script id="Handlebars" type="text/tmpl">
- <ul>
- {{#list}}
- <li>{{{index}}}. 用户: {{{user}}}/ 网站:{{{site}}}</li>
- {{/list}}
- </ul>
- </script>
4 错误处理/调试 - 影响开发效率和维护难度
artTemplate 有详细的错误提示信息,查错方便,不影响后面代码的继续执行
kissy template 错误信息直接输出在页面,而不是在控制台。不影响后面代码的继续执行
juicer 控制台提示模板渲染出错,不影响后面代码的继续执行
mustache 没有任何错误信息,不影响后面代码的继续执行
其他控制台报脚本错误 js执行中断,不知道是哪里出错
5 安全- 是否防止XSS
以上几个模板引擎全都支持html转义,防止XSS
最终的一个对比:
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
**********************************************************************************************
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
介绍 X 款 JavaScript 的模板引擎。(排名不分先后顺序)
1. Mustache
基于javascript 实现的模板引擎,类似于 Microsoft’s jQuery template plugin,但更简单易用!
2. EasyTemplate
在使用过Freemarker模板后,感觉它的 语法比较朴实,平易近人,容易上手,于是决定按它的语法风格实现一个前端的 模板引擎,这就有了下面的EasyTemplate! EasyTemplate模板的函数大小为1.34k(未压缩),暂时只实现了 list,list index,if elseif else等功能,应该可以满足大部分的使用需求了。 EasyTemplate模板 引擎的解析速度测试,渲染1000行数据,在不同的浏览器中,平均速度大约在30豪秒以内(测试机器性能较弱)。
3. jSmart
jSmart 是著名的 PHP 模板引擎 Smarty 的 JavaScript 移植版本。
4. Trimpath
Trimpath JavaScript 是个轻量级的,基于JavaScript的,跨浏览器,采用APL/GPL开放源代码协议的,可以让你轻松进行基于模板编程方式的纯JS引擎。新浪的评论系统使用的就是此模板。
5. jade
Jade是受Haml的影响以JavaScript实现用于node的高性能模板引擎。
6. Hogan.js
来自 Twitter 的 JavaScript 模板引擎。
7. Handlebars
相关推荐
此外,ChakraCore支持最新的JavaScript ECMA-262标准,包括ES6和ES7的特性,如箭头函数、模板字符串、类等。它还具备了对JavaScript的即时编译(JIT)支持,通过动态优化代码,进一步提升运行效率。 开源的...
【描述】中的"NULL"表明没有提供具体的描述,但我们可以推测博主可能分享了一种方法或库,使得开发者能够轻松地用JS生成结构化的周报,这可能涉及到数据处理、模板引擎以及可能的图表生成。 【标签】"源码 工具" ...
JavaScript引擎技术是编程领域中的重要组成部分,主要用于解释和执行JavaScript代码。周爱民老师的讲座主要涵盖了JavaScript语言的基础、规范发展、引擎发展历程以及语言的扩展特性。JavaScript作为一种多范式语言,...
12. **模板引擎**:通过JavaScript模板引擎,可以方便地生成动态HTML,简化前端开发中的数据绑定和渲染过程。 13. **网页游戏**:JavaScript还可以用于开发简单的网页游戏,如扫雷、贪吃蛇等,提供娱乐功能。 这个...
3. **模板引擎**:例如Handlebars或Mustache的实现原理。 4. **前端路由**:如React Router或Vue Router的工作机制。 5. **MVVM框架**:React、Vue、Angular等框架的核心概念和源码解析,如虚拟DOM、组件化、响应...
在Express中,可能是指Web应用程序的框架,如Express.js,其中的模板引擎可以简化HTML页面的生成。 2. **Word和WPS模板**: Microsoft Word和金山WPS Office都提供了丰富的模板库,用户可以根据需要选择不同的模板...
4. **模板引擎**:为了高效地呈现大量职位数据,可能会使用模板引擎(如Handlebars、Pug或Vue.js的内置模板),它们允许动态渲染HTML结构。 5. **前端框架与库**:现代招聘网站可能采用React、Vue.js或Angular等...
可以使用Express.js搭建Web服务器,并结合EJS、Pug等模板引擎生成动态页面。数据可以实时更新在图表中,提供直观的监控体验。 8. **安全考虑**:在部署时,确保你的系统安全。避免明文传输敏感信息,使用HTTPS加密...
"深入js编程网页收集 超级经典"这个主题涵盖了JavaScript在网页开发中的深入理解和实践,旨在帮助开发者提升技能,掌握JavaScript的核心概念和高级特性。 1. **基础概念**:JavaScript是一种解释型、基于原型的对象...
这个“响应式js大气轮播网站模板”是一个专门设计的框架,利用JavaScript和CSS技术来实现动态交互的轮播效果,同时适应各种屏幕尺寸。 首先,我们来看看包含的文件: 1. **gallery.html**:这可能是一个展示图片或...
标题“个人网页模板 平时收集的 里面模板多都是很优秀的 不但款式多 而且界面简洁 符合广大口味”揭示了这个压缩包文件的内容——一个丰富的个人网页模板集合,这些模板以其多样性和简洁的设计风格吸引着用户。...
10. **SEO优化**:优秀的模板应考虑搜索引擎优化(SEO),比如合理的元标签、可点击的文本链接、图片alt属性等,这有助于提升网站在搜索引擎结果页的排名。 通过这个“实用外国网页风格模板收集”,设计师和开发者...
9. **Node.js**:JavaScript也能用于服务器端开发,Node.js是一个使用V8引擎运行JavaScript的平台,提供了丰富的模块系统和非阻塞I/O,适合构建高性能的网络应用。 10. **前端框架**:React、Vue、Angular等前端...
10. **SEO优化**:良好的信息收集网页模板也会考虑搜索引擎优化(SEO),如使用合适的元标签、优化页面速度和结构化数据标记,以提高网页在搜索结果中的排名。 11. **隐私政策与合规性**:在收集用户信息时,必须...
6. **模板引擎**:为了创建动态生成的用户界面,源码可能利用了模板引擎,如Handlebars或Mustache。模板引擎允许开发者将数据和HTML结构分离,提高代码的可维护性。 7. **错误处理与调试**:一份完善的源码会包含...
V8引擎是Google开发的一款高性能的JavaScript和WebAssembly虚拟机,它是Chrome浏览器和Node.js运行时的核心组成部分。这个“V8引擎样例”压缩包包含了多个源代码文件和JavaScript脚本,显然是为了演示V8引擎如何处理...
【标题】"上百个超酷JS广告代码收集汇总 (第二辑)" 涵盖了JavaScript在创建引人注目的广告效果方面的广泛应用。JavaScript是一种强大的客户端脚本语言,它允许网页动态交互,为用户提供丰富的用户体验。在广告设计中...
6. **模板引擎**:`file_select_uploaded.tpl`可能使用某种模板引擎,动态生成已上传图片的列表。 7. **跨浏览器兼容**:纯JavaScript实现需要注意不同浏览器对相关API的支持程度,可能需要添加polyfill或使用条件...
谷歌V8 JavaScript引擎是Google开发的一款高性能的JavaScript和WebAssembly执行环境,被广泛应用于Chrome浏览器以及Node.js等项目。V8引擎以其快速的解析、编译和执行JavaScript代码的能力而闻名,它通过即时编译...
9. **社区支持**:描述中提到模板是从论坛收集来的,这意味着有一个活跃的开发者和用户社区,可以提供技术支持、分享经验或解决问题。 10. **版权问题**:使用模板时,必须注意版权问题。确保模板是免费的、开源的...