Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Можно ли показывать процесс работы?
 
 автор: Shorr Kan   (08.04.2005 в 13:41)   письмо автору
 
 

Например, выводить точки или подчеркивания... Мол, процесс идет. Я имею ввиду, когда жуткие циклы работают... Да еще и вложенные.

   
 
 автор: cheops   (08.04.2005 в 22:24)   письмо автору
 
   для: Shorr Kan   (08.04.2005 в 13:41)
 

Можно, но следует отправлять больше данных, а во-вторых сбрасывать буффер при помощи функций управления выводом. Описание по ссылке.

http://www.softtime.ru/group/id_group=12

   
 
 автор: Shorr Kan   (09.04.2005 в 01:30)   письмо автору
 
   для: cheops   (08.04.2005 в 22:24)
 

Где-нибудь есть пример, как это реализуется? А то не слишком даже понятно, с какой из этих функций начинать...

   
 
 автор: cheops   (09.04.2005 в 11:59)   письмо автору
 
   для: Shorr Kan   (09.04.2005 в 01:30)
 

В начале страницы следует иницировать буффер при помощи функции ob_start(), а затем сбрасывать его время от времени клиенту при помощи функции ob_flush().
<?php
  
// Весь вывод направляем в буффер 
  
ob_start(); 
  echo 
"<p>Подождите христа ради</p>"
  
// Выводим содержимое буффера 
  
ob_flush();
  echo 
"<p>Ещё</p>"
  
// Выводим содержимое буффера 
  
ob_flush();
  echo 
"<p>Ещё</p>"
  
// Выводим содержимое буффера 
  
ob_flush();
?>


http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=147

   
 
 автор: Shorr Kan   (09.04.2005 в 12:48)   письмо автору
 
   для: cheops   (09.04.2005 в 11:59)
 

Именно таким макаром - не получается. Начинает выводить это дело только после отработки всего скрипта.

Максимум, чего у меня получилось, это:
Notice: ob_flush(): failed to flush buffer. No buffer to flush.
Он печатает то, что я его попросил, но заодно и эту warning выдает.

Однако, это если я в цикле его держу...

   
 
 автор: Shorr Kan   (09.04.2005 в 13:40)   письмо автору
 
   для: Shorr Kan   (09.04.2005 в 12:48)
 

Нет, в самом деле... начинает выводить по мере работы только в том случае, если в ob_start что-то вставить... вроде ob_start("#")... но выводит эту ошибку тогда постоянно (в пердыдущем моем сообщении).

В противном случае (ob_start() в начале файла, а в циклах print "#"; ob_flush();), пока не закончится вся работа - ничего не выведет.


Apache/1.3.31 (Win32) PHP/4.3.6

   
 
 автор: Shorr Kan   (09.04.2005 в 14:05)   письмо автору
 
   для: Shorr Kan   (09.04.2005 в 13:40)
 

http://www.salonf.ru/forumvb/printthread.php?s=d81a4723a6c675df88cefaf55bee162f&t=77&pp=40

А не это ли играет роль?

   
 
 автор: cheops   (09.04.2005 в 16:27)   письмо автору
 
   для: Shorr Kan   (09.04.2005 в 14:05)
 

А обязательно что-то выводить? Может будет достаточно строки "Пожалуйста, подождите несколько секунд" с красивой GIF-анимацией в виде переворачивающихся часов или бегущего чего-нибудь?

   
 
 автор: Shorr Kan   (09.04.2005 в 18:06)   письмо автору
 
   для: cheops   (09.04.2005 в 16:27)
 

Это восстановление базы из gz-файлов. Файлов много - от 9 до 59 в шести папках... вложенные циклы, разархивация... у меня на локальном - и то долго. Там минуты.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования