1

長い実行スクリプトのテスト中に奇妙な問題に遭遇したので、単純なスクリプトを使用してテストしようとしました。テストのために、以下のコードで簡単な PHP ページを作成しました。

<?php
sleep(60);
echo 1; 
?>

このページをブラウザーで実行し、実行中にスリープ機能にコメントするだけでコードを変更し、保存してから、同じブラウザーの別のタブで同じページを実行しました。出力が 2 番目のタブですぐに表示されることを期待していましたが、最初のタブでコードを実行した後にのみ出力されました。

上記の手順を繰り返しましたが、今回はクエリ文字列に乱数を追加しました。期待どおりに機能しました。つまり、最初のタブがページを実行していましたが、2番目のタブが結果をエコーし​​ました。

ページがその間に変更されたにもかかわらず、ブラウザーが 2 つの異なるタブで同じページを実行しない理由を知りたいと思います。Firefox と chrome でテストしました。私のサーバーは Apache です。

4

1 に答える 1

0

セッションを使用するに違いありません。session_start()セッション ファイルをロックするか、他のプロセスによってロックが解除されるまで待機します。session_write_close()できるだけ早く使用してください。

于 2013-08-09T14:59:42.497 に答える