最小化php进程

时间:2012-04-13 19:41:38

标签: php jquery

我有一个页面定期发出很多jQuery ajax请求,要求php函数响应:

$.ajax({
      url: "functions.php",
      type: "POST",
      data: {action : 'getData', id : draftid},
      dataType: "html"
    }).done(function(output) {
        $("#myDiv").html(output);
    });

现在,当我打开这个页面的同时查看机器上正在运行的任务时,我会看到运行四到五个php任务。我打算让这个页面同时在多个页面上运行,我觉得我的主人不会对此感到高兴。

我是否可以使用另一种方法来获取jQuery从php脚本(主要是MySQL请求)中获取的信息,以最大限度地减少任务数量和CPU使用量?

编辑:functions.php文件基本上只是一个switch语句,它调用所请求的函数,该函数发出SQL请求并返回相关数据。

我不知道PHP任务的具体内容。当我运行top时,我看到许多进程使用'php'命令。我不是Linux专业人员,所以也许我可以运行一个命令来弄清楚这些过程在做什么更具体?

3 个答案:

答案 0 :(得分:1)

您可以将任何请求合并为一个请求吗?你必须以某种方式解析返回数据,但这不是什么大问题。你有控制权的服务器吗?如果是这样,您可以尝试使用fast-cgi的Web服务器来控制正在运行的进程数和池数据库连接数。

答案 1 :(得分:0)

优化的SQL查询,可能在可能时构建缓存系统? (不知道你在那里编程什么!)

此外,你可以切换到另一个性能更高的Web服务器(我更喜欢Litespeed比Apache快约60%)

同样不要怀疑Apache是​​否在apache上同时运行多个实例。

答案 2 :(得分:0)

在不知道更多信息的情况下,我不能说很多,但是你不能从javascript直接连接到mysql服务器。根据您需要的数据,可能有很多方法可以显着减少后端处理。

一些通用的想法:

  • 将您的ajaxs请求合并到一个“心跳”/更新请求中,这样您只有一个进程正在运行

  • 如果你可以用memcache这样的东西做一些db数据的后端缓存

  • 使用XDEBUG和webgrind配置和优化您的ajax请求