锁定老帖子 主题:关于MVC和ajax的思考
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (5)
|
|
---|---|
作者 | 正文 |
发表时间:2012-02-14
MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)。 MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。 补充解释: Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。 ajax就不用解释了,大家都懂的,新瓶装旧酒,最大的特点就是不重刷页面的同时,改变我们界面上的数据和信息; 在AJAX或者说基于AJAX的界面框架诸如EXTJS,EDOJS等等出来之前,咱们开发WEB应用,是怎么回事呢? 用过STRUTS的人都知道,JSP就是VIEW,用来显示界面和用户交互,controller 就是对用户的请求事件处理,并决定改该用什么model 该怎么 view 。 当AJAX的框架出现之后,我想整个WEB应用开发(我这里强调的是企业应用而非网站),咱们的VIEW 和 controller 的位置发生了变化: view 交给了 js 来处理, controller 也可以认为交给了 js 来处理,而我们的webserver 就是一个 model 的接口,或者说是一个数据和业务逻辑的接口; 那么 controller 被分成了用户事件 和业务逻辑,一个在JS中,一个在服务器端; 这样一来咱们可以从新来定义基于AJAX 的MVC模式: 1.用户界面:由EXTJS来绘制 2.用户事件:由JS来处理,并转化为服务器端事件; 3.业务数据服务:收到来自JS客户端的数据和事件,作出相应的回应; 有趣的事情发生了,看看这个,是不是和我们的CS模式架构类似呢? 这样一来咱们又回到了CS模式时代,区别就是以前的CS的C端是VB,.NET 通过数据库连接,通过socket 或者其他方式和数据库服务端联系; 现在咱们的C端采用的是JS来实现,并且通过AJAX来和服务器端通信,中间传输的是XML 或者JSON或者其他格式的数据; 万变不离其中啊,还是重复不知道某位达人说的话,大意如下: 只要心中有MVC,自然就MVC了,只要心中有设计模式,不需要你来想该用何种模式! 咱们做开发最忌思维僵化,身板硬套,为了用某种技术而用它; 技术是我们解决业务问题的基础,这是必须具备的,但是不要成为我们解决实际问题的障碍! 大家共勉! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2012-02-15
OperaMasks框架
|
|
返回顶楼 | |
发表时间:2012-02-15
最后修改:2012-02-15
感觉对MVC的理解有点跟我不一样,但你的最终结论其实应该是MVC的一种,只是系统也分负责与简单。看场景。
照你的解释,来来去去还不是request/response.... MVC一个好的就是松耦合,你这样搞。如果我不用ajax,不用JS,那不是要重写? |
|
返回顶楼 | |
发表时间:2012-02-15
可以搜一下前端MVC
页面可能都不渲染数据 而是在下面某个隐藏域PUT一堆JSON,然后由JS完成渲染 |
|
返回顶楼 | |
发表时间:2012-02-15
BS和CS本质上并没有不同啊,严格来说,BS也是以http协议通讯的特殊CS而已。
我没觉得加上ajax的mvc怎么就和cs相似了或者说有什么超出了mvc的地方了。 我觉得如果说ajax的应用有一些特殊的地方,是比较容易出现C 会分布在js和action/cotroller(struts2/SpringMVC)两端。不像传统页面跳转时control 显得那么的清晰。 |
|
返回顶楼 | |
发表时间:2012-02-15
现在mvc的概念早就扩大化了
前端也有mvc(比如extjs4) 后端mvc也没什么好说的了,都很成熟了。 |
|
返回顶楼 | |
发表时间:2012-02-16
如果前端一套MVC,後端一套MVC,雖然解耦了,但代碼量成倍上去了。
現在用JS又確實做了一些C的工作。糾結 |
|
返回顶楼 | |
发表时间:2012-02-16
WEB开发,一个字累,任重道远。IT技术还不够先进。
|
|
返回顶楼 | |
发表时间:2012-02-16
HEHE,AJAX本来就是违背了MVC思想的。
|
|
返回顶楼 | |
发表时间:2012-02-16
pindai 写道 感觉对MVC的理解有点跟我不一样,但你的最终结论其实应该是MVC的一种,只是系统也分负责与简单。看场景。
照你的解释,来来去去还不是request/response.... MVC一个好的就是松耦合,你这样搞。如果我不用ajax,不用JS,那不是要重写? 别说重写,如果你服务端只实现了数据接口,没有任何界面,抛弃了AJAX,就等于把界面去掉了,当然需要重写咯。。。 |
|
返回顶楼 | |