Progress bar на PHP

Milagro

Новичок
Progress bar на PHP

Поискал как сделать progress bar на PHP, да все вопросы касаются "тяжелых" расчетов - это не то.

У меня задача проще - PHP генерит файлы, и я хочу что бы:
а) каждый файл генерился новым PHP-расчетом, т.к. файлов много и за один раз все они не сформируются из-за Time Limit;
б) пользователь видел как процесс идет, а именно поток строчек с именами сгенерированных файлов.

Время генерации файла незначительно - доли секунды.

Я делаю так:
PHP:
// файл render.php

function renderFile(){
    // генерим очередной файл
    // формируем текстовый список с именами уже сгенерированных файлов $list
    echo $list;
    echo "<script>window.location='render.php';</script>"
}

renderFile();
Т.е. повторный вызов PHP-расчета формируется JavaScript-ом.

Как-то это криво. Главное, что не устраивает, это то, что большие накладные расходы времени на ожидание когда клиент получит список, он загрузится у него, броузер выполнит JavaScript и запрос вернется в PHP. К тому же, это время возрастает при увеличении длины списка, ну просто файл больше становится и клиенту долше качается.

Что посоветуете?
 

vadim

Guest
Milagro
для этого можно использовать AJAX, каждую секунду по AJAX-у вызываем скрипт php, который нам говорит какие новые файлы были сгенерированны, и эти файлы добавляем например к уже написанным в textarea или куда ещё угодно

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

ZN

Новичок
vadim
кстати, в xoad уже есть система событий, то есть как только файл сгенерился, скрипт постит эвент, а скрипт в браузере эти эвенты слушает
 
Сверху