我开始编写一个相当复杂的Web应用程序,它变得非常混乱。 所以我想我会尝试以更好的方式组织它。 MVC似乎合适。 我之前从未使用过MVC,并且正在研究它我正在努力巩固对它的更好的认识(我的问题显然反映了我认为到目前为止我学到的东西)。 我的问题略微面向JavaScript:
什么对象应该提出“AJAX”请求?控制器或型号? (分离 - 如果模型只是存储/操纵数据,它是否应该关心/知道数据来自何处,或者它应该是获取数据的那个?)
Model应该调用View函数为它们提供数据作为参数,还是View应该查询(引用)模型本身? (考虑到分离原则,“视图不应该关心/知道从哪里获取数据” - 这是正确的吗?)
一般情况下,View应该“知道”模型的存在,反之亦然?控制器是唯一将它们粘在一起还是仅仅是不正确的东西? (我真的怀疑这种说法一般是正确的)
我很有可能想把它移植到桌面/移动应用程序中,所以我想以一种允许我完成任务的方式分离组件,替换当前的数据源,HTTP请求,使用数据库访问,并替换视图。
也许我提出过的所有方法仍然是“有效的”MVC,这取决于我选择。我知道没有什么是一成不变的,我只是想在脑子里有一个(更好的)总体思路。
答案 0 :(得分:2)
答案 1 :(得分:1)
1 - View发出AJAX
请求,并由控制器处理。控制器知道要求什么数据,何时以及如何将其打包为视图,但不知道任何底层存储机制(例如,SQL,XML,NoSQL ......);这是由模型抽象出来的
2 - 两者都不。视图和模型不应该彼此了解。
3 - 不是第一个,是第二个。
答案 2 :(得分:0)
我自己走了以下路径:
查看Model-View-Controller in jQuery教程了解此方法。它使我的生活变得更轻松,并以相当的方式改进了代码。易于重构和重用。