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

Форум PHP

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

 

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

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

тема: Вывод информации в браузер
 
 автор: Владимир55   (15.10.2009 в 21:14)   письмо автору
 
 

    echo '<p><a href="2.php" target="_blank">Стоп</a></p>';
    flush();
    sleep(5); // Задержка в секундах


    for ($i=1; $i <= 1000000; $i++)
    {
        echo "<br> $i ";
        if ($stop == "stop") break;
    }


Необходимо, что бы ссылка выводилась в браузер сразу, а информация из цикла появлялась позже.

В реале получается так (с ИЕ), что долгое время экран пуст, а потом выводится сразу все - и ссылка, и записи из цикла.

Как осуществить задуманное?

  Ответить  
 
 автор: ols   (15.10.2009 в 21:33)   письмо автору
 
   для: Владимир55   (15.10.2009 в 21:14)
 

Подобные вещи лучше на ЯваСкрипт делать с использованием таймера.

upd. Вы наверное хотите чтобы пользователь сначала прочитал рекламу, а по истчечение приблизительного врмени, которое затрачивается на чтение рекламмы, открывался нужный контент.
Можно задать счетчик и поместить контент в невидимый слой (display: none)
По истчечению счетчика данному стилю отменить атрибут none

  Ответить  
 
 автор: Владимир55   (15.10.2009 в 22:05)   письмо автору
 
   для: ols   (15.10.2009 в 21:33)
 

Нет, задача совсем другая.

Хеопс где-то писал про буферизацию и очистку кеша, но сейчас не могу найти его пост... А сделать хочется!

  Ответить  
 
 автор: Trianon   (15.10.2009 в 22:09)   письмо автору
 
   для: Владимир55   (15.10.2009 в 22:05)
 

flush() и ob_flush()

  Ответить  
 
 автор: Владимир55   (15.10.2009 в 22:42)   письмо автору
 
   для: Trianon   (15.10.2009 в 22:09)
 

К сожалению, я не сумел решить задачу с этими операторами. Это какая-то загадочная ситуация, которую мне никак не удается разрешить...

Как их использовать в данном случае?

  Ответить  
 
 автор: Trianon   (15.10.2009 в 23:22)   письмо автору
 
   для: Владимир55   (15.10.2009 в 22:42)
 

Я просто напомнил, какие функции задействованы в процессе, чтобы по ним было проще искать.

  Ответить  
 
 автор: Владимир55   (15.10.2009 в 23:30)   письмо автору
 
   для: Trianon   (15.10.2009 в 23:22)
 

За напоминание спасибо. Но для меня flush - это вообще что-то непознаваемое! Сколько раз я ни пытался извлечь хоть какую-то пользу от нее, ни разу не удавалось!

Сегодняшняя попытка решить описанную задачу третья по счету. Похоже, что решения здесь вообще нет...

  Ответить  
 
 автор: Trianon   (15.10.2009 в 23:35)   письмо автору
 
   для: Владимир55   (15.10.2009 в 23:30)
 

Во первых flush() надежно работает лишь после вывода "\r\n" и при выключенном output_buffering
Во вторых, это всё ж рекомендация, а не приказ. И апач и прокси по дороге имеют право забуферизировать поток так или иначе.
Но иногда таки помогает.
Другой вопрос, что на это не стоит опираться в реальной системе, бо уж больно шаткий инструмент...

  Ответить  
 
 автор: cheops   (16.10.2009 в 13:47)   письмо автору
 
   для: Владимир55   (15.10.2009 в 21:14)
 

Это вам придется постоянно значение output_buffering подгонять под объем ваших данных... надежнее и проще реализовать все это средствами JavaScript.

  Ответить  
Rambler's Top100
вверх

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