如果我使用一个浏览器/会话多次请求它,我的Web应用程序(WAMP)为什么会变慢?

koa*_*der 2 php mysql windows apache session

第一个请求:http://url.tld/calc-sth-complicated

第二个请求:http://url.tld/simple-view

我有一个Web应用程序--Windows/Apache/PHP/MySQL.如果我使用一个带有更多选项卡的浏览器(一个会话)来请求Web应用程序,则第二个请求似乎等待第一个请求.

如果我使用两个浏览器(两个会话),则第二个请求不会等待第一个.我怎样才能解决这个问题?什么阻塞?我怎么能看到阻塞的是什么?为什么第二个请求在等待?

谢谢

Mar*_*c B 5

PHP的默认会话处理程序会锁定会话文件,而使用该会话的任何脚本都处于活动状态.从同一浏览器向站点执行多个请求会强制除第一个并行请求之外的所有请求等待会话文件解锁.

从两个完全浏览器(这意味着两个不同的会话)执行此操作可以让请求并行进行,因为两个会话都不会锁定另一个会话.

如果您的站点需要能够并行执行多个同一会话请求,则应session_write_close()尽快在每个脚本中使用.如果脚本没有修改会话的内容,您可以在初始session_start()调用后立即执行此操作.即使会话"关闭",$ _SESSION数组仍然存在且可读.