84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
如题: 模版的初衷是:代码与页面的分离。但实际开发过程中, 模版文件页面元素要嵌入大量的变量,以及同时处理if/else、for each等处理逻辑,比如smarty模版。 对于这种模版文件,模版语言和html语言混合在一起,结构混乱、逻辑与布局混杂,既不利于编辑制作,也不利于调试排错。同时还要增加前端人员的学习压力(例如要学习smarty)。
理想的模式下,前端只负责展示和交互(html/css/js),后端只负责提供数据(php)。
怎么实现这种理想模式?
认证0级讲师
今天刚看到一个地方说,可以使用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)。
因爲前後端銜接的任務交給中間層了~
今天刚看到一个地方说,可以使用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 依舊叫前端負責
前後端的分法本來就有些欠缺,缺少一個中間層。
只有這樣,才有可能做到:
因爲前後端銜接的任務交給中間層了~