模板引擎的再度优化:Juicer

  前端模板引擎因其代码可读性强和易于维护性深得站长喜爱。市面上的模板引擎很多,如:Mustache, jQuery tmpl, Kissy template, ejs, doT, nTenjin, etc.等。随着技术的进步,这些模板引擎越来越切合用户的体验要求了。目前,又有了新模板Juicer,既然是新模板,说明其一定有着其他模板所不具备的新特性,下面让我们一起来了解一下Juicer。

  Juicer最注重的是其高效的性能,因为用户的体验感知,直接受其影响。同时,Juicer兼顾了错误处理机制和安全性。下面我们来看下jsperf上同几个主流模板引擎的性能对比。

  

  

  通过上图,我们可以清晰看到Juicer在性能上的优势。下面就来详细介绍下Juicer。

  一、安全性

  Juicer对数据输出做了安全转义,避免执行恶意JS代码。如下

  

  

  如果JSON数据是第三方接口返回或者含有用户输入(像BBS、评价)的内容,第一种代码写法就很容易执行恶意代码。当然,如果不想被转义,可以使用$${varname}。

  二、错误处理

  错误处理可以避免模板引擎编译错误时引发后续js代码停止执行。而Juicer在遇到一些JSON数据的偶发错误时,只会在控制台打出一句警告(Warn)告知开发者模板解析出现错误,而不会影响后续代码的执行。

  

  如此高效的模板引擎,你是否已经蠢蠢欲动了?

  本文由郑州墙绘:http://www.zzfeitian.com整理发布。

时间: 2024-10-30 08:23:18

模板引擎的再度优化:Juicer的相关文章

javascript轻量级模板引擎juicer使用指南_javascript技巧

使用方法 编译模板并根据数据立即渲染出结果 juicer(tpl, data); 仅编译模板暂不渲染,返回一个可重用的编译后的函数 var compiled_tpl = juicer(tpl); 根据给定的数据对之前编译好的模板进行渲染 var complied_tpl = juicer(tpl); var html = complied_tpl.render(data); 注册/注销自定义函数(对象) juicer.register('function_name', function); ju

javascript中doT,juicer,artTemplate模板引擎分析与对比

再可以将前后端代码分离,岗位清晰,使后台程序人员可更好的去完成逻辑运算,而前端人员岗位更加专精.统一. js模板引擎越来越多的得到应用,如今已经出现了几十种js模板引擎,国内各大互联网公司也都开发了自己的js模板引擎(淘宝的kissy template,腾讯的artTemplate,百度的baiduTemplate等),如何从这么多纷繁的模板引擎中选择一款适合自己的呢,笔者最近对主流的js模板引擎(mustache,doT,juicer,artTemplate,baiduTemplate,Han

Twig模板引擎用法入门教程_php实例

本文实例讲述了Twig模板引擎用法.分享给大家供大家参考,具体如下: 介绍 Twig是一个灵活.高效并且安全的PHP模板引擎. 如果你使用过Smarty.Django或者Jinja这类基于文本的模板引擎的话,那么你会觉得Twig是很自然而然的事情.Twig严格遵守了PHP的信念,同时增加了在模板环境中很有用的函数,这些做法使得Twig不论是对设计师还是开发人员,都是非常友好的. Twig的主要特征有: 高效:Twig将模板编译成了优化了的PHP文件,与原生的PHP代码比较而言,性能损耗非常小.

详解模板引擎工作机制

本文讲的是详解模板引擎工作机制, 我已经使用各种模版引擎很久了,现在终于有时间研究一下模版引擎到底是如何工作的了. 简介 简单的说,模版引擎是一种可以用来完成涉及大量文本数据的编程任务的工具.一般而言,我们经常在一个 web 应用中利用模板引擎来生成 HTML .在 Python 中,当你想使用模板引擎的时候,你会发现你有不少的选择,比如jinja 或者是mako.从现在开始,我们将利用 tornado 中的模板引擎来讲解模板引擎的工作原理,在 tornado 中,自带的模板引擎相对的简单,能方

Groovy模板引擎上(基础模板介绍)

原文链接 作者:groovy团队  译者:树下偷懒的蚁 1.简介 Groovy支持多种方式动态的生成文本譬如:GStrings, printf(基于Java5),MarkupBuilder .除此之外,模板框架则是非常适用基于静态模板生成文本的应用程序. 2.模板框架 在Groovy中,模板框架包含TemplateEngine抽象基类(引擎必须实现),Template接口(引擎生成的模板必须实现). Groovy包含的以下几种模板引擎: SimpleTemplateEngine -基础模板引擎

说说如何用JavaScript实现一个模板引擎

前言 不知不觉就很长时间没造过什么轮子了,以前一直想自己实现一个模板引擎,只是没付诸于行动,最近终于在业余时间里抽了点时间写了一下.因为我们的项目大部分用的是 swig 或者 nunjucks ,于是就想实现一个类似的模板引擎. 至于为什么要做这么一个东西?基本上每一个做前端的人都会有自己的一个框架梦,而一个成熟的前端框架,模板编译能力就是其中很重要的一环,虽然目前市面上的大部分框架 vue.angular 这些都是属于 dom base 的,而 swig nunjucks ejs这些都是属于

ASP.NET Razor模板引擎中输出Html的两种方式_实用技巧

本文实例讲述了ASP.NET Razor模板引擎中输出Html的两种方式.分享给大家供大家参考,具体如下: Razor中所有的Html都会自动编码,这样就不需要我们手动去编码了(安全),但在需要输出Html时就是已经转义过的Html文本了,如下所示: @{ string thisTest = "<span style=\"color:#f00;\">qubernet</span>"; } @thisTest; 这样在页面输出的文本就是:<

PHP模板引擎Smarty中变量的使用方法示例_php实例

本文实例讲述了PHP模板引擎Smarty中变量的使用方法.分享给大家供大家参考,具体如下: 一.概述: Smarty 是 PHP 众多模板引擎中的一个,它是根据 PHP 编写的一个类库. Smarty 的优点: 1.优化网站访问速度: 2.网页前端设计和程序的分离: 二.Smarty 的安装 1.需要到 Smarty 的官方网站 http://www.smarty.net/download.php 下载最新的 Smarty 版本,比如下载的版本为:Smarty-2.6.18.tar.tar: 2

Wit 2.0.0-beta 发布,Java 模板引擎(原 Webit Script)

Febit Wit (原 Webit Script )是一个 Java 平台下的模板引擎,语法类似 JavaScript,支持自定义函数,全局变量,Lambda 表达式,核心模块轻巧(2.0.0-beta 版本核心 jar 为 327.7 KB),无第三方依赖,采用BSD开源协议. 出来炸个尸!发布一下 2.0.0-beta ! <dependency> <groupId>org.febit.wit</groupId> <artifactId>wit-cor