如題:
模版的初衷是:代碼與頁面的分離。但實際開發過程中, 模版檔案頁面元素要嵌入大量的變數,以及同時處理if/else、for each等處理邏輯,比如smarty模版。
對於這種模版檔案,模版語言和html語言混合在一起,結構混亂、邏輯與布局混雜,既不利於編輯製作,也不利於調試排錯。同時還要增加前端人員的學習壓力(例如要學習smarty)。
理想的模式下,前端只負責展示和互動(html/css/js),後端只負責提供資料(php)。
怎麼實現這種理想模式?
回複內容:
如題:
模版的初衷是:代碼與頁面的分離。但實際開發過程中, 模版檔案頁面元素要嵌入大量的變數,以及同時處理if/else、for each等處理邏輯,比如smarty模版。
對於這種模版檔案,模版語言和html語言混合在一起,結構混亂、邏輯與布局混雜,既不利於編輯製作,也不利於調試排錯。同時還要增加前端人員的學習壓力(例如要學習smarty)。
理想的模式下,前端只負責展示和互動(html/css/js),後端只負責提供資料(php)。
怎麼實現這種理想模式?
今天剛看到一個地方說,可以使用JQuery,前端所有資料通過JQuery的Ajax進行擷取資料,以及進行前後端資料的互動。
後端輸出json,前端處理資料
用這個模式寫過一些東西,希望有協助
部落格 http://i.mouto.org/
部落格 http://mouto.org/
討論版 http://za2.org/
電台 http://itorr.sinaapp.com/fm/
電台 http://moe.re/fm
個人吐槽記錄 http://x.mouto.org/
照片社區 http://dev.vscam.co/
2015-2-20: ......這麼多從這裡來路的訪問為什麼不慷慨下滑鼠給個贊!!!!!!! T_T
樓上正解,後台使用json傳送資料 前端使用ajax接收。
我先談談我的觀點。
PHP最開始最初的嵌入HTML中, 後來模板盛行(如Smarty), 再到後來的又拋棄模板(使用用輸出)或輕量級模板(如Laravel的Blade模板引擎)。但前後台代碼始終沒有做到完全分離。作為Web開發的神級架構MVC, 有的時候讓人搞不清楚業務代碼究竟應該寫在哪, 所謂的視圖就是套著php鎖鏈的HTML, 而Model大多數是一個繼承於ORM的子類。這樣的模式, 後端開發人員仍要處理HTML代碼。就算是一個人在寫前後端, 也要不斷的切換思維,徘徊於商務邏輯和View之間, 實在是很痛苦。
單純的後端只輸出JSON, 前端處理JSON並顯示, 確實可以做到前後端的分離。但是沒有條條框框束縛的開發模式,工程很容易隨著工程量的增加或代碼的不規範而陷入泥沼。
我現在十分推崇純粹REST後端 + AngularJS(REST)前端的架構。純粹REST後端, 完全拋棄的View,並且可以憑藉單一後端支援主流的應用情境: App, 瀏覽器, Web API,最主要的是有那麼一套規範或標準實現去約束你,後端人員只需考慮如何更rest,更好的寫便於使用的API就好了。而AngularJS從REST後端手中接過大棒,可以輕易的實現一個很優雅的前端架構。
再輔以node.js,單元測試,coffee, sass之流 .... 想不爽都難
模板的實質是 placeholder。你連 placeholder 都不寫,計算機怎麼知道什麼是可變的什麼不可變?結果至多是把模板邏輯挪到代碼裡,然後代碼高度依賴 html 結構。。。回到石器時代。。。模板從有 if-else 開始就跑偏了,越來越想媲美一個通用語言,越來越複雜。
或者把模板啥的一股腦推給前端,後端只做 API,但這樣只是責任轉移了,前端依舊不能專心負責展示和互動。
其實後端應該分兩類,一類負責核心應用,一類負責模板
HTML CSS 依舊叫前端負責
前後端的分法本來就有些欠缺,缺少一個中間層。
只有這樣,才有可能做到:
前端只負責展示和互動(html/css/js),後端只負責提供資料(php)。
因爲前後端銜接的任務交給中間層了~