На днях обнаружил интересную особенность работы PHP.
Допустим есть некий скрипт, который может выполняться относительно долго. Если в браузере, после запуска скрипта прервать сединение(кнопка стоп в браузере), то скрипт не отпадает, а продолжает работать дальше в штатном режиме.
Вот искусственное симулирование подобной ситуации:
if ( file_exists($fileName) ) { while ( !is_writable($fileName) ) { usleep(500000); }
$content = file($fileName);
echo '<pre>', implode('', array_reverse($content)), '</pre>'; } else { echo 'файл отсутствует'; } } else { $path = parse_url($_SERVER['REQUEST_URI']); $path = $path['path']; ?> <p>Указать время в терении которого будет работать скрипт, даже если заррыть соединение.</p> <form action=""> <fieldset> <label for="work_time" title="">Время работы скрипта</label> <input type="text" name="work_time" id="work_time" value="10" /> <input type="submit" value="Отправить" /> </fieldset> </form> <a href="<?php echo $path;?>?get_log=1" title="s">Посмотреть лог</a> <?php }
Запускаем скрипт, указываем в поле ввода время в течении которого будет работать скрипт, отправляем форму на сервер. Скрипт начинает в цикле запись в файл, пока не превысит время работы указанное в форме.
После того как браузер начал ожидание ответа, открываем в новом окне ссылку ''Посмотреть лог". В открывшемся окне постоянно жмем обновить и видим содержимое файла в который идет запись.
Если вернуться к первому окну, остановить ожидание ответа и вернуться к просмотру содержимого файла, то видим что скрипт не остановился, а продолжает работать.
Вот не могу понять почему так происходит, хотя тут написано мануал, что скрипт должен оборваться.
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
CoDy
Всем привет...
На днях обнаружил интересную особенность работы PHP.
Допустим есть некий скрипт, который может выполняться относительно долго. Если в браузере, после запуска скрипта прервать сединение(кнопка стоп в браузере), то скрипт не отпадает, а продолжает работать дальше в штатном режиме.
Вот искусственное симулирование подобной ситуации:
Запускаем скрипт, указываем в поле ввода время в течении которого будет работать скрипт, отправляем форму на сервер. Скрипт начинает в цикле запись в файл, пока не превысит время работы указанное в форме.
После того как браузер начал ожидание ответа, открываем в новом окне ссылку ''Посмотреть лог". В открывшемся окне постоянно жмем обновить и видим содержимое файла в который идет запись.
Если вернуться к первому окну, остановить ожидание ответа и вернуться к просмотру содержимого файла, то видим что скрипт не остановился, а продолжает работать.
Вот не могу понять почему так происходит, хотя тут написано мануал, что скрипт должен оборваться.
Link to comment
Share on other sites
6 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.