摘要:置換型模板引擎的優(yōu)點實現(xiàn)簡單,缺點效率低,無法滿足高負載的應(yīng)用請求。用途百度詞條模板引擎可以讓網(wǎng)站程序?qū)崿F(xiàn)界面與數(shù)據(jù)分離,業(yè)務(wù)代碼與邏輯代碼的分離,提升開發(fā)效率,良好的設(shè)計也提高了代碼的復(fù)用性。前端模板的出現(xiàn)使得前后端分離成為可能。
模板引擎
模板引擎-百度詞條
什么是模板引擎?(百度詞條)模板引擎(這里特指用于Web開發(fā)的模板引擎)是為了使用戶界面與業(yè)務(wù)數(shù)據(jù)分離而產(chǎn)生的,它可以生成特定格式的文檔,用于網(wǎng)站的模板引擎會生成一個標(biāo)準(zhǔn)的HTML文檔。
原理(百度詞條)模板引擎的實現(xiàn)方式有很多,最簡單的是“置換型”模板引擎,這類模板引擎將指定模板內(nèi)容(字符竄)中的特定標(biāo)記(子字符竄)替換一下變生成了最終需要的業(yè)務(wù)數(shù)據(jù)(比如網(wǎng)頁)。
置換型模板引擎的優(yōu)點:實現(xiàn)簡單, 缺點: 效率低,無法滿足高負載的應(yīng)用請求。
用途(百度詞條)模板引擎可以讓(網(wǎng)站)程序?qū)崿F(xiàn)界面與數(shù)據(jù)分離,業(yè)務(wù)代碼與邏輯代碼的分離,提升開發(fā)效率,良好的設(shè)計也提高了代碼的復(fù)用性。
我們司空見慣的模板安裝卸載等概念,基本上都和模板引擎有著千絲萬縷的聯(lián)系。模板引擎不只是可以讓你實現(xiàn)代碼分離(業(yè)務(wù)邏輯代碼和用戶界面代碼),也可以實現(xiàn)數(shù)據(jù)分離(動態(tài)數(shù)據(jù)與靜態(tài)數(shù)據(jù)),還可以實現(xiàn)代碼單元共享(代碼重用),設(shè)置是多語言、動態(tài)頁面與靜態(tài)頁面自動均衡(SDE)等等與用戶界面可能沒有關(guān)系的功能。
前端模板AJAX的出現(xiàn)使得前后端分離成為可能。
后端專注于業(yè)務(wù)邏輯,為前端提供接口。
前端通過AJAX的方式向后端的接口請求數(shù)據(jù),然后動態(tài)渲染頁面。
//假設(shè)接口數(shù)據(jù)如下 //[{friends: "Sharon"}, {friends: "Sandy"}, {friends: "Roc"}] //假設(shè)渲染后的頁面
- Sharon
- Sandy
- Roc
模板引擎出現(xiàn)之前,當(dāng)然是在js中遍歷拼接字符竄。
確實很簡單方便,但是也有很多缺點:
html代碼(View層) 和 JS代碼 (Controller層),UI與邏輯代碼混雜在一起,非常不便于閱讀。 一旦業(yè)務(wù)復(fù)雜起來,不容易維護。
從安全角度來講,也會有代碼注入攻擊風(fēng)險(code injection)。
從代碼者的角度來講,如果需要拼接的HTML代碼里有很多引號的話(比如標(biāo)簽里面有很多屬性),那么就非常容易出錯。
既然這樣,總要想辦法解決問題!
這就引出模板引擎, Underscore的_.template可能是最簡單的前端模板引擎了(或者可以說,這就是個前端模板函數(shù))。
引用_.template,將以上的代碼改寫。
這樣的話,前端需要改HTML代碼,只需要改模板即可。
用戶界面與邏輯代碼不在混雜,可維護性和擴展性大大的提高了。
如何實現(xiàn)一個模板引擎呢? 實現(xiàn)的思路是什么呢?
感興趣的話,可以看看我翻譯的兩篇文章。
翻譯_20行代碼創(chuàng)造JavaScript模板引擎(一)
翻譯_只需20行代碼創(chuàng)造JavaScript模板引擎(二)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/98828.html
摘要:前端模板的出現(xiàn)使得前后端分離成為可能。總結(jié)本文簡單介紹了模板引擎在前后端的使用,下文我們回到,重點分析下的使用方式以及源碼原理。樓主對于模板引擎的認識比較淺顯,有不正之處希望指出感謝 前言 這篇文章本來不打算寫的,實話說樓主對前端模板的認識還處在非常初級的階段,但是為了整個 源碼解讀系列 的完整性,在深入 Underscore _.template 方法源碼后,覺得還是有必要記下此文,...
摘要:來給大家推薦一款模板引擎,會推薦這款模板引擎最主要還是他輕量級,代碼簡潔,好用,一個大概也才幾左右。 對于前端開發(fā)者來說,有一個綁數(shù)據(jù)的模板是多么的幸福,不用我多說大家也知道,終于不用在js中一個個字符串拼接一大推元素數(shù)據(jù)啥的,可以省下我們很多時間。來給大家推薦一款模板引擎artTemplate,會推薦這款模板引擎最主要還是他輕量級,代碼簡潔,好用,一個template.js大概也才幾...
摘要:來給大家推薦一款模板引擎,會推薦這款模板引擎最主要還是他輕量級,代碼簡潔,好用,一個大概也才幾左右。 對于前端開發(fā)者來說,有一個綁數(shù)據(jù)的模板是多么的幸福,不用我多說大家也知道,終于不用在js中一個個字符串拼接一大推元素數(shù)據(jù)啥的,可以省下我們很多時間。來給大家推薦一款模板引擎artTemplate,會推薦這款模板引擎最主要還是他輕量級,代碼簡潔,好用,一個template.js大概也才幾...
摘要:歡迎來我的個人站點性能優(yōu)化其他優(yōu)化瀏覽器關(guān)鍵渲染路徑開啟性能優(yōu)化之旅高性能滾動及頁面渲染優(yōu)化理論寫法對壓縮率的影響唯快不破應(yīng)用的個優(yōu)化步驟進階鵝廠大神用直出實現(xiàn)網(wǎng)頁瞬開緩存網(wǎng)頁性能管理詳解寫給后端程序員的緩存原理介紹年底補課緩存機制優(yōu)化動 歡迎來我的個人站點 性能優(yōu)化 其他 優(yōu)化瀏覽器關(guān)鍵渲染路徑 - 開啟性能優(yōu)化之旅 高性能滾動 scroll 及頁面渲染優(yōu)化 理論 | HTML寫法...
摘要:歡迎來我的個人站點性能優(yōu)化其他優(yōu)化瀏覽器關(guān)鍵渲染路徑開啟性能優(yōu)化之旅高性能滾動及頁面渲染優(yōu)化理論寫法對壓縮率的影響唯快不破應(yīng)用的個優(yōu)化步驟進階鵝廠大神用直出實現(xiàn)網(wǎng)頁瞬開緩存網(wǎng)頁性能管理詳解寫給后端程序員的緩存原理介紹年底補課緩存機制優(yōu)化動 歡迎來我的個人站點 性能優(yōu)化 其他 優(yōu)化瀏覽器關(guān)鍵渲染路徑 - 開啟性能優(yōu)化之旅 高性能滾動 scroll 及頁面渲染優(yōu)化 理論 | HTML寫法...
閱讀 3027·2023-04-25 18:06
閱讀 3272·2021-11-22 09:34
閱讀 2857·2021-08-12 13:30
閱讀 2045·2019-08-30 15:44
閱讀 1661·2019-08-30 13:09
閱讀 1630·2019-08-30 12:45
閱讀 1715·2019-08-29 11:13
閱讀 3608·2019-08-28 17:51