Дополнение страницы, без перезагрузки её, как в доргене red.button

Статус
В этой теме нельзя размещать новые ответы.

Dador

Читатель
Заблокирован
Регистрация
14 Янв 2008
Сообщения
368
Реакции
99
  • Автор темы
  • Заблокирован
  • #1
Как там сделано? когда при генерации сайта, выводится сколько страниц сгенерировано, например:
Создаем дорвей на 5 страниц → etototdor.ru
0, 1, 2, 3, 4, 5
Время генерации: 0.89397597313 сек.
вот то что 0, 1, 2 и.т.д хоть их будет 1000, страницы грузится постепенно
Смотря в исходный код доргена, я так ничего и не нашёл, нашёл ту функцию, вроде функция та, а когда в другой скрипт всё по другому.
Как можно такое реализовать?
 
Там аякс, кажись, используется... Но такое запросто можно сварганить так:

PHP:
$numbers = range(1, 15);
foreach ($numbers as $value) {
	echo $value;
	flush();
	sleep(1);
}
Попробуй закомментируй flush(); и поймешь в чем дело ;)
ЗЫ: перенесено в новички
 
в РБ используется связка
PHP:
print ();
 flush();
как и указал Jeurey

смотри например
/yes/run.php строки 650 и 651
 
  • Автор темы
  • Заблокирован
  • #4
Там аякс, кажись, используется... Но такое запросто можно сварганить так:

PHP:
$numbers = range(1, 15);
foreach ($numbers as $value) {
	echo $value;
	flush();
	sleep(1);
}
Попробуй закомментируй flush(); и поймешь в чем дело ;)
ЗЫ: перенесено в новички

сейчас попробовал твой вариант без foreach - не сработало, есть вариант без него?

(без него я побывал так:
PHP:
echo "Начинаем";
flush();
sleep(1);

в РБ используется связка
PHP код:
print ();
flush();
как и указал Jeurey

смотри например
/yes/run.php строки 650 и 651

посмотрел, подставил даже тож самое - не работает, только после полной загрузки файла
А в самом доргене работает =(

----
Спасибо, сейчас за комментировал остальную часть скрипта - всё заработало, как и должно быть, со спячкой тоже норм.
 
случайно не на win тестируешь?
на винде flush() странно работает.
 
masto, раньше, когда сидел на виндах - вроде нормально работало :)
 
винда винде рознь, лично сам натыкался на горбыль - в никсах всё ОК, а на win flush() ни в какую.
Да и на самом php.net думаю не просто так написано
Several servers, especially on Win32, will still buffer the output from your script until it terminates before transmitting the results to the browser.
Правда потом нашёл способ как с этим бороться.
 
Действительно, есть трабла с флушем под Win... Короткие фразы не будут выведены пока буфер не заполниться определнным количеством данных. Помогоет отссылка кучи пробелов, а только потом текст сообщения, которое должно обновиться...
 
Действительно, есть трабла с флушем под Win... Короткие фразы не будут выведены пока буфер не заполниться определнным количеством данных.
Это не из-за траблов flush и WIN. Буферизует вывод опера(точно) и IE(вроде). Под FF и WIN flush всё прекрасно выводит.
А вот RB,кстати, умудряется сразу выводить под всеми браузерами.
 
ещё от настроек пхп.ини может зависеть. попробуйте вставить сие в начало скрипта:

PHP:
@ini_set('output_buffering','off');
@ob_end_clean();
@ob_implicit_flush(TRUE);

у меня пашет норм.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху