2012-02-21 1 views
2

Я хотел бы знать, что произойдет, если у меня есть подобный код в PHP страницу doit.php:Что происходит на сервере, когда запрос сделан, и клиент немедленно завершает работу?

$url="http://someServer.com/somepage.php"; 

$i=10; 
while($i--){ 
getDataFromAnotherServer($url); 
} 

сейчас, зная, что функция getDataFromAnotherServer() может занять до секунды или два .. Что произойдет, если пользователь запросит этот doit.php и сразу закроет браузер? Будет ли функция по-прежнему вызываться 9 раз (цикл достигнет i == 0) или остановится где-нибудь посередине? Thanks

+2

Не так ли просто попробовать? – zerkms

+0

Вам это нужно для продолжения? Там [ignore_user_abort()] (http://us3.php.net/manual/en/function.ignore-user-abort.php), если это так. – jprofitt

ответ

2

Сценарий будет прерван (если не будет попытки отправить данные клиенту в течение этого времени). Чтобы предотвратить завершение работы скрипта раньше из-за отключения клиента, используйте ignore_user_abort.

Более подробная информация об обработке соединения PHP можно найти здесь:

http://www.php.net/manual/en/features.connection-handling.php

0

сценарий будет прервать. функция getDataFromAnotherServer может занять несколько секунд, предполагая, что вы не контролируете сервер. это может привести к тому, что максимальное выполнение будет достигнуто. просто что-то, что нужно запомнить. ignore_user_abort может дать желаемый результат

Смежные вопросы