Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过单个入口点的ajax请求_Php_Jquery_Ajax_Model View Controller - Fatal编程技术网

Php 通过单个入口点的ajax请求

Php 通过单个入口点的ajax请求,php,jquery,ajax,model-view-controller,Php,Jquery,Ajax,Model View Controller,我正在构建一个小小的mvc风格的框架,通过公用文件夹中的索引使用一个入口点。现在,我将所有ajax请求都传递给它,并将它们定向到私有应用程序目录中的相应控制器 这样做的利弊是什么 我应该这样做吗?或者另一种方式?优点:您不必搜索大量代码来找出处理AJAX请求的位置 缺点:我想不出任何缺点。唯一潜在的缺点是AJAX不需要的任何“昂贵”的引导,这可能会降低响应时间。不过,APC可能会帮助或否定这一点,这取决于您正在做什么,并且您可能会定制引导过程来处理轻量级请求 FWIW是用于AJAX的普通Drup

我正在构建一个小小的mvc风格的框架,通过公用文件夹中的索引使用一个入口点。现在,我将所有ajax请求都传递给它,并将它们定向到私有应用程序目录中的相应控制器

这样做的利弊是什么


我应该这样做吗?或者另一种方式?

优点:您不必搜索大量代码来找出处理AJAX请求的位置


缺点:我想不出任何缺点。

唯一潜在的缺点是AJAX不需要的任何“昂贵”的引导,这可能会降低响应时间。不过,APC可能会帮助或否定这一点,这取决于您正在做什么,并且您可能会定制引导过程来处理轻量级请求


FWIW是用于AJAX的普通Drupal方法,它将所有内容导入与普通页面相同的位置。这样做还有助于在用户没有启用JS时提供回退。

最初可能没有太多缺点。正如Pickle所指出的,你可以在一个很容易找到的地方找到所有东西

我想说,功能应该留在它所属的控制器中。仅仅因为输入和输出是AJAX并不重要。事实上,您可以在控制器中有一个方法,比如show user方法,它可以输出HTML页面或AJAX数据。当这些内容属于用户控制器时,没有理由将其放在单独的AJAX控制器中

老实说,这是所有的设计决策。我更倾向于将事物保持在它们所属的逻辑位置,并将AJAX作为输入和输出问题来处理,并构建处理该输入/输出的方法


我们推出了自己的框架,我们构建了一个路由器来处理传入的流量。ajax调用的末尾有一个.json。这对控制器是可用的,如果控制器支持ajax请求,它将输出有效的JSON数据,而不是将数据传递到视图,然后显示HTML。

它非常轻量级,希望这不会成为问题。你说的APC是什么意思?thanksAPC()是PHP的操作码缓存。本质上,它为PHP文件保存字节码,这样文件就不需要每次重新编译。它可以极大地提高网站的性能,特别是当你有很多共享代码的时候。这是我的想法,我真的刚刚开始使用php,所以我只是学习一些诀窍,看看应该或者可以如何做。谢谢你的最后一个提示听起来是一个很好的方法。你说在你的例子中,你在结尾添加了一个.json,你是说像&type=json这样的东西吗?你可以这样做。但我们实际上是这样做的,并使用我们的路由器来解析url,以了解应该发生什么。