Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите решить проблемку, вывод сообщения об обработке данных 
V
    Опции темы
jzZ
Дата 24.7.2006, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 17.7.2006

Репутация: 1
Всего: 2



Возникла небольшая проблемка, собсна ее суть:
Данные посылаются скрипту и в это время он должен выводить сообщение типа: Подождите идет обработка данных, мне нужно, чтобы это отображалось типа как лоадер, т.е. это сообщение (хтмл текст) дополнялся 1ой точкой раз в несколько микросекунд (0.5 сек) в течении 4 секунд, а далее стирался бы и выводился результат работы обработчика.

P.S. Пользовался этим и этим, но не работает просто скрипт думает как раз окол этих 4 секунд и в это время выводит просто пустую страницу а после 4 секунд выводит уже сообщение с окончательным числом точек... ХЗ в чем проблема. Код был типа такой:
Код

<html>
<head>
  <title></title>
</head>
<body>
<?php
echo "<div align='center'>Подождите идет обработка данных";
usleep(500000);
echo ".";
usleep(500000);
echo "..";
usleep(500000);
echo "...</div>";
?>
</body>
</html>

Но не работает должным образом... Буду благодарен за любую помощь.
Заранее спасибо! 
PM MAIL   Вверх
skyboy
Дата 24.7.2006, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



дык, решай это на стороне клиента. зачем серверу, и так нагруженному обработкой, ещё и передавать каждую секунду по точке? 
PM MAIL   Вверх
AztEK
Дата 24.7.2006, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 723
Регистрация: 4.1.2005

Репутация: 6
Всего: 18



Про функцию sleep обсуждалось тут. А в принципе, реализовывать это надо средствами ajax, поскольку страницу надо будет перезагрузить после окончания работы обработчика. 


--------------------
Linux is like wigwam -- no windows, no gates, apache inside.
PM MAIL Jabber   Вверх
jzZ
Дата 24.7.2006, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 17.7.2006

Репутация: 1
Всего: 2



skyboy
т.е.?? javascript? не силен в этом, буду благодарен за маленький простенький пример.
AztEK
прочел, проблема все равно осталось нерешенной ведь так, а мне нужен этот лоадер, не на флэш же мне его писать )

Добавлено @ 17:45 
AztEK
прочитал тут где ты и говорил
поправил код так:
Код

<html>
<head>
  <title></title>
</head>
<body>
<?php
 function slp() {
    usleep(500000);
    flush();
 }
echo "<div align='center'>Подождите идет обработка данных";
slp();
echo ".";
slp();
echo "..";
slp();
echo "...</div>";
?>
</body>
</html>


Выводит "сообщение" потом ставит 1 точку, и потом сразу остальные 5. Короче также не работает должным образом )

Добавлено @ 17:50 
AztEK
Спасибо за ссылку вчитался -> сделал ))
Может код будет кому-нибудь полезен:
Код

<html>
<head>
  <title></title>
</head>
<body>
<?php
 function slp() {
    usleep(500000);
    flush();
 }
 echo "<div align='center'>Подождите идет обработка данных";
 for ($i = 0; $i <= 5; $i++) {
    slp();
    echo ".";
    flush();
}
echo "</div>";
?>
</body>
</html>


Спасибо всем за внимание. 
PM MAIL   Вверх
Muchenik
Дата 24.7.2006, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 27.10.2005

Репутация: 5
Всего: 5



На стороне клиента:

Код

<?php
print "
<b id='status'>Loading.</b>
<script language='JavaScript'>
    var interval_id;
    interval_id = setInterval(\"document.all.status.innerHTML += '.'\", 1000);
</script>
";
ob_flush();
flush();
sleep(10);
print "
<script>
    clearInterval(interval_id);
</script>";
?>

Желательно  еще добавлять ob_flush(); потому что
Цитата

flush() has no effect on the buffering scheme of your webserver or the browser on the client side. Thus you need to call both ob_flush() and flush() to flush the output buffers


  

Это сообщение отредактировал(а) Muchenik - 24.7.2006, 18:32
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0465 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.