每个用户同时有2个不同的php请求

时间:2010-05-30 13:15:23

标签: php apache url browser

我有一个有2页的网站,(home_page.php和action_page.php)Action页面需要​​aprx。 2分钟完全加载(服务器端需要2分钟)。但是,如果用户在加载操作页面时单击主页链接,则浏览器不会转到主页,直到操作页面完全加载。如果在新标签页中打开主页,则相同。

首先是什么原因? (bowser?php?apache?),我怎么能避免这个?

谢谢

3 个答案:

答案 0 :(得分:10)

很可能,这是因为会话被锁定了。 PHP将只允许每个会话一个请求,以防止出现问题(覆盖数据等)。请参阅:session_write_close() ...

答案 1 :(得分:1)

如果页面加载需要2分钟,那么您将达到典型浏览器的网络超时限制。这是一个非常长的页面加载时间。您可能需要考虑生成一个单独的进程来处理长处理。您可以将结果放在数据库,文件等中,并使用轮询来检查是否已完成。

当产生进程(exec())时,请确保使用nohup,后台(&)并将错误输出直接输出到/ dev / null,否则它将不会与Web进程和Web进程断开连接将等待它完成。

答案 2 :(得分:0)

另外,如果您正在开发,请查看您的调试设置。我在.htaccess中有这个:

php_flag xdebug.remote_enable on
php_flag xdebug.remote_connect_back on
php_flag xdebug.remote_autostart on

这会产生相同的行为。