Как во время работы скрипта постепенно выводить результаты

12 3
[Удален]
1469

Я сделал скрипт, который вызывает рекурсивную функцию, заходящую на все страницы сайта, который нужно обработать, и производит на каждой некоторые действия. Но когда я запускаю скрипт на выполнение - окно браузера сразу не перерисовывается (и вообще не перерисовывает до конца работы скрипта). Пока скрипт работает я хотел бы чтобы пользователи видели что-то вроде:

Идет загрузка... подождите

либо постепенно выводились результаты работы скрипта.

Как можно реализовать такую постоянную перерисовку?

S
На сайте с 13.07.2007
Offline
56
#1

ajax и 10 слонов

crapa
На сайте с 27.05.2008
Offline
56
#2

http://www.php.su/functions/?flush

Как то так:

for ($i=0;$i<5;$i++) {

$pause = rand(1,5);
echo "Проход $i, ждем $pause сек<br>";
flush();
sleep($pause);
}
[Удален]
#3
solnikolay:
ajax и 10 слонов

можете дать ссылку на описание функций, которые нужно использовать?

Hubba_Bubba
На сайте с 26.11.2005
Offline
75
#4

Не надо аякс, Вам правильно функцию flush посоветовали.

ТОлько не на всех хостингах работает нормально. Лично убедился.

Сайт экономистов БелГУТа (http://economistov.net)
GN
На сайте с 10.11.2009
Offline
131
#5

зависит от времени выполнения скрипта.

если до минуты, то аяксом красивее, иначе - flush.

ещё от размера результата зависит. большие - лучше flush-ем делать.

Регистрация доменов (http://www.get-names.com/)
Dreammaker
На сайте с 20.04.2006
Offline
569
#6
get-names.com:
если до минуты, то аяксом красивее, иначе - flush.

как раз наоборот, если недолго и система не успевает грохнуть процесс, то можно flush или что-то подобное, если дольше, то дёргать через flash или ajax.

GN
На сайте с 10.11.2009
Offline
131
#7
Dreammaker:
как раз наоборот, если недолго и система не успевает грохнуть процесс, то можно flush или что-то подобное, если дольше, то дёргать через flash или ajax.

система в любом случае не должна грохать процесс.

если процесс долгий и долго крутится колёсико аякса, то юзер подумает, что что-то не так (повисло) и уйдёт с сайта. именно в этом случае и лучше давать ему результаты порциями - flush.

а если недолгий, то разницы большой нет, но аяксок красивее и более модно.

Dreammaker
На сайте с 20.04.2006
Offline
569
#8
get-names.com:
система в любом случае не должна грохать процесс.

это не зависит от владельца сайта в ряде случаев, например, если сайт на виртуальном хостинге.

get-names.com:
если процесс долгий и долго крутится колёсико аякса,

Для вас аякс - это только крутящееся колёсико? Тогда спорить не буду...

[Удален]
#9
Dreammaker:


Для вас аякс - это только крутящееся колёсико? Тогда спорить не буду...

ъыы1 в карму =))))))

да, народ любит это колесико!

bearman добавил 16.11.2009 в 18:59

если процесс занимает больше 30 секунд, то только аякс, ибо когда заказчик скажет "установите все мне на сервер", ту твы глотнете иаду ...

GN
На сайте с 10.11.2009
Offline
131
#10
Dreammaker:
это не зависит от владельца сайта в ряде случаев, например, если сайт на виртуальном хостинге.

проблемы с хостингом решаются очень просто - переездом. раз в жизни можно выбрать нормальный хостинг и потом горя не знать.

Dreammaker:
Для вас аякс - это только крутящееся колёсико? Тогда спорить не буду...

спорить не стоить когда не прав. также не стоит выдерать слова из контекста. у меня хотя бы аргументирован мой выбор...

bearman:
если процесс занимает больше 30 секунд, то только аякс, ибо когда заказчик скажет "установите все мне на сервер", ту твы глотнете иаду ...

по любому, "глотныт яду" именно те, кто начнут всю кутерьму с аяксом вместо вызова в пхп одной функции))))

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий