Файл php, использующий функцию sleep(), не может работать одновременно

Я новичок в пхп. У меня сейчас проблема с функцией сна, то есть у меня простой файл sleep.php такой: <?php echo date('Y-m-d H:i:s'); sleep(5); ?>

Когда я нажимаю этот файл одновременно на 2 вкладках, первый выполняется и дает следующий результат: 2013-05-04 10:06:24
но второй должен дождаться полного выполнения первого, а затем дать результат: 2013-05-04 10:06:29

Мой вопрос: почему они не могут выполняться одновременно? Это действие php или из-за веб-службы или чего-то еще. Я использую nginx 1.3.0

Заранее спасибо!


person im nobody    schedule 04.05.2013    source источник
comment
Посмотрите в php.ini, чтобы убедиться, что session.auto_start включен. Для меня это похоже на проблему блокировки сеанса.   -  person cleong    schedule 04.05.2013
comment
Я пытался, но это неправильно. Тот же результат. Я думаю, что это не проблема php, а проблема веб-сервиса (nginx). В любом случае, большое спасибо, приятель :)   -  person im nobody    schedule 04.05.2013


Ответы (1)


Я думаю, что это поведение браузера. на самом деле, вы не можете выполнять их полностью одновременно, и один из них выполняется раньше. при первом выполнении ваш браузер открывает для вас сеанс, и когда другое выполнение получает, браузер чувствует, что он имеет то же имя файла в процессе выполнения, поэтому он ждет, пока не завершится первое выполнение, а затем начинает второе выполнение того же файла. если вы хотите увидеть выполнение вашего оператора echo одновременно на двух вкладках, вы можете назвать их двумя разными именами файлов и выполнить их в одном браузере или выполнить один файл в двух разных браузерах. в обоих случаях вы получите то, что ожидаете.

person Amir    schedule 04.05.2013
comment
Вы правы в том, что назвали их двумя разными именами файлов. Я пробовал и не сомневаюсь в этом. На самом деле, когда я пытался открыть свой sleep.php на двух разных компьютерах, они могли работать одновременно. Мне все еще интересно, является ли это поведением браузера или проблемой nginx. Так странно! - person im nobody; 04.05.2013
comment
@imnobody, это поведение браузера. на самом деле это потому, что в браузерах включены файлы cookie. если вы отключите куки, они будут выполняться полностью одновременно. - person Amir; 04.05.2013
comment
ты прав, приятель! Я проверил это с помощью команды curl. Большое спасибо, Амир! - person im nobody; 06.05.2013