小编典典

MVC ajax调用-在哪里处理?

ajax

我有一个正在构建的自滚动MVC框架,到目前为止,已经设法避免了任何AJAX调用的需要。但是,现在,我想创建一个实时更新提要。

我的问题是,通常将Ajax调用的处理程序存储在MVC中的什么位置?我应该将它们存储在进行呼叫的同一控制器中吗?

例如,如果我的域名www.example.com/browse/blogs(浏览器是控制器,博客是方法)正在对更新后的博客列表进行AJAX调用,则该调用将仅仅是访问www.example.com/浏览/更新列表或其他内容?

或,因此它是一个单独的仅AJAX控制器?www.example.com/ajax/update_blogs

你怎么做呢?


阅读 285

收藏
2020-07-26

共1个答案

小编典典

我想说一个Ajax请求与一个非Ajax请求完全相同:实际上,从HTTP协议的角度来看,它的工作方式完全相同。

唯一的区别是,您将返回一些非格式化的数据,例如JSON或XML (嘿,这与生成ATOM提要^^相同) ,或者仅返回HTML页面的一部分。

因此,我会将这些请求视为其他任何“正常” HTTP请求,并按照与非Ajax请求相同的方式放置它们。

半替代的想法可能是在您的控制器中仅执行一项操作:/browse/blogs-并始终调用该操作。

但是,它将检测是否正在通过Ajax请求,并且会:

  • 如果通过“正常”请求调用,则返回整页
  • 或仅返回一些数据(或页面的一部分)(如果通过Ajax请求调用)

注意:这不是一个“疯狂”的想法;例如,Zend
Framework提供了一些便利的工具(请参阅12.8.4.3。ContextSwitch和AjaxContext

2020-07-26