Показать прогресс сложной работы php-gd, используя ajax без опроса?

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

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

У меня довольно сложная работа с несколькими вложенными циклами.

например

for($y = 0;$y < $fullrows; $y++){
for($x = 0;$x < $fullcolumns; $x++){
for($yinside=$y*$texty;$yinside < ($y+1)*$texty;$yinside++){
for($xinside=$x*$textx;$xinside < ($x+1)*$textx;$xinside++){
//Calculate color averages for a picture
}
}
for($ytexture = 0; $ytexture < $texty; $ytexture++){
for($xtexture = 0; $xtexture < $textx; $xtexture++){
//Replace picture blocks with according texture
}
}
}
}
}
//More code and loops for uneven edges

Я уже понял, как реализовать переменную прогресса и максимальную переменную. Так что, когда работа заканчивается, р = т. 100 * p / m будет эффективно рассчитывать прогресс в процентах во время работы.

Однако я понятия не имею, как вернуть этот прогресс без опроса и с совместимостью для IE 8-9. (Не опроса и максимальной совместимости)

Я прочитал это: http://stratosprovatopoulos.com/web-development/php/ajax-progress-php-script-without-polling/

Демо в статье не работает .. И я не уверен, как реализовать эти вещи в цикле.

Я понимаю, что он пользуется ob_implicit_flush(true); and ob_end_flush();
Который должен сделать выходной скрипт php на мой клиентский скрипт.

Однако в своих циклах я открываю и закрываю текстурные изображения с помощью php GD. Я также рисую и копирую изображения. Разве эти операции также не будут выведены? Как выбрать то, что я хочу отражать для прогресса? Не повторить?

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

Мне нужны некоторые объяснения. Благодарю.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]