模板的工作原理可以簡單地分成兩個步驟:模板解析(翻譯)和數(shù)據(jù)渲染。這兩個步驟可分別部署在前端或后端來執(zhí)行。如果放在后端執(zhí)行,則是像Smarty,F(xiàn)reeMarker這樣的后端模板引擎,而如果放在前端來執(zhí)行,則是我們要探討的前端模板。
FreeMarker是一個模板引擎,一個基于模板生成文本輸出的通用工具,使用純Java編寫,模板用servlet提供的數(shù)據(jù)動態(tài)地生成 HTML,模板語言是強大的直觀的,編譯器速度快,輸出接近靜態(tài)HTML頁面的速度。這里不再對后端模版進行描述。
前端模版提高了前端開發(fā)的可維護性(后期改起來方便)以及可擴展性(想要增加功能,增加需求方便);提高了開發(fā)效率提高(程序邏輯組織更好,調試方便);最重要的一點就是:【視圖(包括展示渲染邏輯)與程序邏輯的分離】。好處是減輕服務器負擔,壞處是可能不利于seo以及模版錯誤不好調試。
當今前端模版主要有三類:
-String-based 模板技術 (基于字符串的parse和compile過程) -Dom-based 模板技術 (基于Dom的link或compile過程) -雜交的Living templating 技術 (基于字符串的parse 和 基于dom的compile過程)。
一.前端模版的演變
傳統(tǒng)的前端開發(fā)方式是通過通過ajax獲取數(shù)據(jù)進行繁瑣的數(shù)據(jù)渲染。隨著前端頁面的交互越來越繁雜,頁面無刷新的傳輸與頁面的顯然也越發(fā)的頻繁,導致頁面性能低下。即當前端從后臺通過ajax等方式獲取到數(shù)據(jù)更新后,都需要將這個數(shù)據(jù)渲染到指定的dom元素中,需要重新進行各種字符串拼接工作或者一系列創(chuàng)建元素的工作,這種方式是繁瑣且費時的。這種在可讀性和維護性上也存在問題。
基于字符串的模板引擎最大的功勞就是把你從大量的夾帶邏輯的字符串拼接中解放出來了,由于它的完全基于字符串的特性,它擁有一些無可替代的優(yōu)勢。如下的字符串拼接:
延伸閱讀
- 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實現(xiàn)JSON轉Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數(shù)據(jù)結構來看看(二) 2017-07-26