0

5 分間実行される php スクリプトを実行すると、別のブラウザー タブでこのファイルにアクセスできません。このタブが読み込まれていることを示していますが、最初の終了時にのみ読み込まれます。

セッションに問題がありますか、またはこの問題を解決するために何か提案できますか?

どうすればこの問題を解決できますか? セッションが必要です。

4

2 に答える 2

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

セッションを再度開いて変更することは、ほとんどの状況で悪い動きです。なぜセッション状態を使用しているのかを自問してください。リクエストを再構成して、リクエストに依存しないようにしてください。

于 2013-08-05T10:05:28.393 に答える