如题:
模版的初衷是:代码与页面的分离。但实际开发过程中, 模版文件页面元素要嵌入大量的变量,以及同时处理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接收。
使用jsonnobackend
我先谈谈我的观点。
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)。
因爲前後端銜接的任務交給中間層了~