前端模板引擎因其代碼可讀性強(qiáng)和易于維護(hù)性深得站長(zhǎng)喜愛(ài)。市面上的模板引擎很多,如:Mustache, jQuery tmpl, Kissy template, ejs, doT, nTenjin, etc.等。隨著技術(shù)的進(jìn)步,這些模板引擎越來(lái)越切合用戶(hù)的體驗(yàn)要求了。目前,又有了新模板Juicer,既然是新模板,說(shuō)明其一定有著其他模板所不具備的新特性,下面讓我們一起來(lái)了解一下Juicer。
Juicer最注重的是其高效的性能,因?yàn)橛脩?hù)的體驗(yàn)感知,直接受其影響。同時(shí),Juicer兼顧了錯(cuò)誤處理機(jī)制和安全性。下面我們來(lái)看下jsperf上同幾個(gè)主流模板引擎的性能對(duì)比。


通過(guò)上圖,我們可以清晰看到Juicer在性能上的優(yōu)勢(shì)。下面就來(lái)詳細(xì)介紹下Juicer。
一、安全性
Juicer對(duì)數(shù)據(jù)輸出做了安全轉(zhuǎn)義,避免執(zhí)行惡意JS代碼。如下


如果JSON數(shù)據(jù)是第三方接口返回或者含有用戶(hù)輸入(像BBS、評(píng)價(jià))的內(nèi)容,第一種代碼寫(xiě)法就很容易執(zhí)行惡意代碼。當(dāng)然,如果不想被轉(zhuǎn)義,可以使用$${varname}。
二、錯(cuò)誤處理
錯(cuò)誤處理可以避免模板引擎編譯錯(cuò)誤時(shí)引發(fā)后續(xù)js代碼停止執(zhí)行。而Juicer在遇到一些JSON數(shù)據(jù)的偶發(fā)錯(cuò)誤時(shí),只會(huì)在控制臺(tái)打出一句警告(Warn)告知開(kāi)發(fā)者模板解析出現(xiàn)錯(cuò)誤,而不會(huì)影響后續(xù)代碼的執(zhí)行。

如此高效的模板引擎,你是否已經(jīng)蠢蠢欲動(dòng)了?
本文由鄭州墻繪:http://www.zzfeitian.com整理發(fā)布。