运行运行 5 分钟的 php 脚本时,我无法在另一个浏览器选项卡中访问此文件。它显示此选项卡正在加载,但仅在第一次结束时加载。
会话中是否存在问题,或者您可以提出解决此问题的建议吗?
我怎么解决这个问题?我需要会话。
session_write_close()
尽快打电话。
在 PHP 中,对会话状态的访问是同步的。您必须关闭会话以允许另一个请求访问它。您可以使用session-write-close()关闭会话。
大多数情况下,您不需要在初始化后更改会话状态。所以只需将会话复制到局部变量:
// Copy session data to local variable
session_start();
$session = $_SESSION;
session_write_close();
// now use $session instead of $_SESSION
if (isset($session['foo'])) {
echo $session['foo'];
}
// Optionally open the session again to write something
// may lead to synchronization issues with parallel requests
session_start();
if ($reckless) {
$session['foo'] = 'bar';
$_SESSION = $session;
} else {
$_SESSION['foo'] = 'bar';
}
在大多数情况下,再次打开会话以更改它是一个糟糕的举动。问问自己为什么要使用会话状态。尝试重组您的请求,使他们不依赖它。