dqx24298 2014-02-24 10:13
浏览 50
已采纳

在Apache中发送AJAX请求是否会启动新进程?

A few simple questions for someone who knows how the Apache server works I think.

  1. Does sending an AJAX .send request to a .php file start a new process in the background?

  2. If so, when does that process end?

  3. When I send multiple AJAX requests to the same php file, will the server create multiple processes of the same file, or is there a way to send all requests to a single PHP process with an inifinite loop inside it?

  • 写回答

2条回答 默认 最新

  • douzhe9927 2014-02-24 11:00
    关注

    Apache handles requests along the following principles:

    1. Apache leaves some spare processes/threads to handle client requests. Incoming connection from a client is handled by an idle process. If there is no idle process apache starts a new one unless maximum number of processes is reached. In that case, your request is waiting for some other process to finish its work.

    2. The process/thread finishes when there are too many idle processes or the process has served a maximum number of requests.

    3. Ajax requests are handled by PHP script one at a time. For every ajax request your script gets run from start. You can have "long running" PHP script continuously reading the input and sending output, but it will block server resources and be subject to timeouts on many levels. Generally it is not a good idea to use on a heavy server like apache, less so for a busy site. If you need continuous browser-server communication then HTML5 websockets with appropriate server provides a good solution see eg. http://socket.io

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?