PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
4php
Отправлено: 02 Июня, 2010 - 17:32:24
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Нужно выводить по 1й строке в секунду. Как это сделать?

Делал так:
PHP:
скопировать код в буфер обмена
  1. for($i = 5; $i >= 0; $i--)
  2. {
  3.         echo $i.'<br>';
  4.         sleep(1);
  5. }

В итоге через 5 секунд на экран вываливается "54321", а нужно с промежутком в 1 сек.
Думаю вопрос понятен
 
 Top
SAD
Отправлено: 02 Июня, 2010 - 18:09:07
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




sleep тут не катит. Тебе обязательно на php?
 
 Top
4php
Отправлено: 02 Июня, 2010 - 18:27:03
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Июнь 2010  


Помог: 0 раз(а)




Да, нужно на php. А если не sleep, то что?
Пробовал sleep + flush, получилось, но коряво, вываливает сразу первые 3 строки а потом остальные с задержкой в секунду

(Отредактировано автором: 02 Июня, 2010 - 18:27:51)

 
 Top
Мелкий Супермодератор
Отправлено: 02 Июня, 2010 - 18:38:08
Post Id



Активный участник


Покинул форум
Сообщений всего: 11900
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 615 раз(а)




4php пишет:
Да, нужно на php.

Тогда запрашивайте AJAX'ом каждую следующую строку с интервалом в секунду.

или давайте задачу полностью, почему так и почему клиентской работой должен заниматься серверный php?


-----
PostgreSQL DBA
 
 Top
Champion Супермодератор
Отправлено: 02 Июня, 2010 - 20:00:57
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




ob_start(), вывод, ob_flush(), ob_clean() sleep() - если в таком порядке?
 
 Top
Nestor
Отправлено: 02 Июня, 2010 - 23:45:34
Post Id



Частый гость


Покинул форум
Сообщений всего: 220
Дата рег-ции: Март 2009  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. for($i = 5; $i >= 0; $i--) {
  3.         echo $i.'<br>';
  4.         flush();
  5.         sleep(1);
  6. }

Вот так у меня работает.попробуйте.


-----
Aurus CMS
 
 Top
JustUserR
Отправлено: 04 Июня, 2010 - 11:00:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




4php пишет:
Нужно выводить по 1й строке в секунду
Помимо проблемы с буферазацией вывода которая решается с помощью функцию типа ob_* есть еще один важный момент - в реальном PHP-скрипте генерация и вывод строк тоже занимает определенное время особенно если они составляются каким-то достаточно сложным алгоритмом - поэтому в таком случае лучше разбить ваш PHP-скрипт на два исполняемых потока один из которых будет генерировать строки и добавлять их в буфер - а второй поток будет его сбрасывать раз в нужный интервал времени
Кроме того если вам нужна большая точность вывода в 1 секунду то лучше реализовать это на клиентской стороне с помощью JS-скрипта - ведь задержку составляет не только генерация строк но и передача их по каналам сети интернета


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB