我正在建立一个小的mvc样式框架,通过公共文件夹中的索引有一个单一的入口点。我现在通过它传递所有的ajax请求,并将它们指向私有应用程序目录中的相应控制器。
这样做的优点和缺点是什么?
我应该这样做吗?或者其他方式?答案 0 :(得分:2)
最初可能不是很多缺点。正如Pickle所指出的,你在一个区域内的所有东西都很容易找到。
我会说功能应该保留在它所属的控制器中。仅仅因为输入和输出都是AJAX应该无关紧要。实际上,您可以在控制器中使用一个方法,如show user方法,可以输出HTML页面或AJAX数据。当它属于用户控制器时,没有理由将它放在单独的AJAX控制器中。
老实说,这是所有设计决策。我只是偏好将逻辑保留在逻辑上的位置,并将AJAX视为输入和输出问题,并构建处理输入/输出的方法。
我们推出了自己的框架,我们构建的一件事是处理传入流量的路由器。并且ajax调用最后有一个.json。然后,控制器可以使用它,如果控制器支持ajax请求,它将输出有效的JSON数据,而不是将数据传递给视图,然后显示HTML。
答案 1 :(得分:0)
优点:您不必搜索大量代码来找出处理AJAX请求的位置。
缺点:我无法想到。
答案 2 :(得分:0)
唯一潜在的缺点是任何“昂贵的”自举,AJAX不需要这可能会减慢响应时间。但是,APC可能会帮助或否定这一点,具体取决于您正在做什么,并且您可以定制引导过程来处理轻量级请求。
FWIW,AJAX的正常Drupal方法通过与普通页面相同的位置汇集所有内容。当用户没有启用JS时,这也是为了帮助提供回退。