Как сделать паузу при выполнении скрипта?

#1 8 мая 2012 в 03:55
Не могу понять, как сделать паузу при выполнении скрипта?

Суть в следующем:
Скрипт что-то там делает, потом нужна пауза на 3 секунды для вывода сообщения, далее скрипт продолжает что-то там делать...
Функция sleep не подходит — так как идёт задержка на выполнение всего скрипта, а потом всё пролетает одним махом, несмотря на то, что этот sleep находится в конце скрипта.

Как такое можно осуществить?
#2 8 мая 2012 в 12:05
имхо только sleep.

потом нужна пауза на 3 секунды для вывода сообщения

Alexneva
  1. echo 'сообщение';
  2. sleep(3);
если буферизации нет.
#3 8 мая 2012 в 23:08
Не получается (((
Вот, к примеру, я предполагаю, что в результате этого сложнейшего кода:
  1.  
  2. echo 'Сообщение 1';
  3. sleep(5);
  4. echo 'Сообщение 2';
сначала выдаст "Сообщение 1", а через 5 секунд "Сообщение 2". Но после перезагрузки страницы пауза 5 сек, а потом сразу выдаёт "Сообщение 1Сообщение 2"

Дело в буферизации? Она нужна вообще?
#4 9 мая 2012 в 00:19
Alexneva, а у вас
есть где-нибудь?
#5 9 мая 2012 в 00:28
Нет, ob_start(); не нашёл.

Погуглил, увидел что я не один такой, у многих не работает sleep. Есть решения на Яваскрипт, но он браузер останавливает, даже картинки не успевают загрузиться.
Пока решил сделать так — пишу сообщение на одной странице, потом с помощью кода
  1.  
  2. <script language="JavaScript">
  3. setTimeout (function(){self.location="адрес страницы";}, 3000);
  4. </script>
  5.  
переадресую через 3 сек. на другую страницу, а там уже следующие действия по программе )))

Без танцов с бубнами никак )))
#6 9 мая 2012 в 00:35
Вот так работает:
  1.  
  2. echo 'Сообщение 1';
  3. sleep(5);
  4. echo 'Сообщение 2';
  5.  
нужно сбросить буфер echo();
#7 9 мая 2012 в 00:42

Вот так работает:
Код PHP:
1 echo 'Сообщение 1';
2 flush();
3 sleep(5);
4 echo 'Сообщение 2';

Марат
Увы, так тоже не работает… Так-же, сначала пауза 5 сек. а потом всё сразу без задержек пролетает.
#8 9 мая 2012 в 00:54

Увы, так тоже не работает… Так-же, сначала пауза 5 сек. а потом всё сразу без задержек пролетает.

Проверял на локалхосте, работает. Зависит от настроек php.ini. Попробуйте поэксперементировать. Вот здесь подробнее о буферизации вывода. Можно попробовать установить директиву implicit_flush на true посредством ini-set(). Или что-то ещё. Голова уже совсем не варит, ночь ))) В любом случае связано с буферизацией вывода echo().
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.