当运行运行5分钟的php脚本时,我无法在另一个浏览器选项卡中访问此文件

时间:2013-08-05 09:30:28

标签: php ubuntu process apache2

运行运行5分钟的php脚本时,我无法在另一个浏览器选项卡中访问此文件。它显示此选项卡正在加载,但它仅在第一次结束时加载。

会话中是否存在问题,或者您是否可以提出解决此问题的建议?

我该如何解决这个问题?我需要会议。

2 个答案:

答案 0 :(得分:2)

尽快致电session_write_close()

答案 1 :(得分:0)

在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';
}

在大多数情况下,再次打开会话以改变它是一个糟糕的举动。问问自己为什么要使用会话状态。尝试重新构建您的请求,以便他们不依赖它。