Как приостановить выполнение кода в PHP и что происходит во время ожидания - PullRequest
2 голосов
/ 13 октября 2011

Если я хочу приостановить выполнение кода в PHP, я использую sleep()? Если это так, что именно происходит на стороне клиента, пока работает количество секунд, переданных sleep()? Ничего такого? Он просто ждет ответа от веб-сервера? Или он говорит браузеру: «Хорошо, я получил ваш запрос, но вам придется подождать X секунд, пока я не отправлю вам ответ».

Спасибо.

Ответы [ 3 ]

7 голосов
/ 13 октября 2011

sleep () просто приостанавливает скрипт на указанный промежуток времени.Внутренне он сообщает ОС: «Я иду спать, разбуди меня через X секунд».Если PHP-скрипт не выдаст клиентскому браузеру сообщение о том, что он будет находиться в спящем режиме, браузер просто зависнет, пока не решит, что соединение разорвано, сетевое соединение не отключится из-за отсутствия активности или ваш сценарий проснется и возобновит операции.sleep () является чисто серверной операцией и НЕ меняет ничего на клиенте.

5 голосов
/ 13 октября 2011

Клиент просто ждет. Ни в коем случае не сообщается, что вы тратите время зря: -)

1 голос
/ 13 октября 2011

Во-первых, я уверен, что веб-сервер не может знать, через сколько секунд завершится выполнение сценария. Представьте, что сценарий работает над тяжелым запросом mysql, как он может определить, когда это закончится.

Если я хочу приостановить выполнение кода в PHP, использую ли я sleep ()?

Это в целом верно, однако каждый случай индивидуален и, возможно, в некоторых случаяхдругое решение может быть найдено (может быть, Ajax ?! зависит ..)

...