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

标签 php mysql windows apache session

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

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

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

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

谢谢

最佳答案

当任何使用 session 的脚本处于事件状态时,PHP 的默认 session 处理程序会锁定 session 文件。从同一浏览器向站点发出多个请求会强制除第一个并行请求之外的所有请求等待 session 文件解锁。

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

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

关于php - 如果我使用一个浏览器/ session 多次请求我的 Web 应用程序 (WAMP),为什么它会很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5487030/

相关文章:

php - 无法从laravel中的两个表中获取数据

php - 使用单个查询更改 MySQL 中的多个值

sql - 带有分组依据和排序依据的mysql查询

windows - 您如何在 Amazon AWS 实例之间共享驱动器?

linux - 一条命令即可判断是 windows、osx 还是 linux/unix

PHP/MySQL 处理每行属性发生变化的 XML 数组

php - 如何在对 XPLAN API 的 CURL 请求中构造 edai.Search 方法的第三个参数?

c# - WPF 针对 .NET 4.5 但 Windows 要求在应用程序运行时安装 .NET 3.5

php - MySQL 和 PHP 的问题

php - SQL php在不同页面上插入(mysqli)