`
otom31
  • 浏览: 226184 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

关于MVC和ajax的思考

阅读更多
要想对这个发表一些看法,那还是先度娘一下,看看官方对MVC的解释:

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了,只要心中有设计模式,不需要你来想该用何种模式!


咱们做开发最忌思维僵化,身板硬套,为了用某种技术而用它;
技术是我们解决业务问题的基础,这是必须具备的,但是不要成为我们解决实际问题的障碍!

大家共勉!
分享到:
评论

相关推荐

    AJAX讲座Think In Ajax

    传统C/S和N层架构 MVC架构 Web应用限制 Ajax横空出世 应用案例-山东移动网站自助服务揭密 Ajax的挑战和思考

    【卷一/共两卷】AJAX实战pdf高清版90M

    目录 第一部分 重新思考Web应用 第1章 一种新的Web设计方法 1.1 为什么需要Ajax富客户端? 1.1.1 比较用户体验 1.1.2 网络延迟 1.1.3 异步交互 1.1.4 独占或瞬态的使用模式 1.1.5 忘掉Web ...附录C Ajax框架和库

    Ajax培训讲义(PPT)

    Ajax培训讲义: 传统C/S和N层架构 MVC架构 Web应用限制 Ajax横空出世 应用案例-山东移动网站自助服务揭密 Ajax的挑战和思考

    initphp_3.6.zip_Action!

    InitPHP采用了分层体系架构,在MVC模式基础上进行延伸!详细的API文档和使用Zend studio开发代码提示,让您开发更加速度!我们对每一个框架函数进行了思考,用简单...5. ajax_return 添加json和xml的HTTP Content-type

    《Java-Web应用开发基础》教学课件08课程设计实例.pptx

    8.1回顾和思考 所谓MVC设计模式,是指具有完整规模的Web项目都可以按系统流程特性分为3个模块,分别称为模型(model)、视图(view)和控制器(controller)。模型对应的组件是JavaBean,视图对应的组件是JSP或HTML...

    www.canteen.com.rar

    后端没使用框架,只是mvc分层,前端用jq和Bootstrap,ajax,json。我想做开源,如何这个系统可以的话,大家自己去改改,我之前写的太死,功能扩展方面没想过,现在看来也不过一般般,大家谁有个好想法可以发我邮件...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    该案例采用目前最流行、最规范的java ee架构,整个应用分为jpa实体层、eao层、业务逻辑层、mvc层和视图层,各层之间分层清晰,层与层之间以松耦合的方法组织在一起。该案例既提供了ide无关的、基于ant管理的项目源码...

    asp.net知识库

    DbHelperV2 - Teddy的通用数据库访问组件设计和思考 也论该不该在项目中使用存储过程代替SQL语句 如何使数据库中的表更有弹性,更易于扩展 存储过程——天使还是魔鬼 如何获取MSSQLServer,Oracel,Access中的数据字典...

    JAVA自学之路

    这里只是讲了路线图,关于路线中的各个阶段,学到什么程度,如何学习等,可以参考后面的JAVA自学之路 七:《路线图明细》。 首先要学JavaSE,这是无庸置疑的。 与此同时,是的,与此同时,和JavaSE的学习同步,...

Global site tag (gtag.js) - Google Analytics