使用ajax显示复杂php gd作业的进度而不进行轮询?

使用ajax显示复杂php gd作业的进度而不进行轮询?,php,ajax,image-processing,gd,progress,Php,Ajax,Image Processing,Gd,Progress,我制作了一个web应用程序,可以将几乎所有位图图像转换为minecraft块的马赛克 它可以工作,但处理大图像可能需要一分钟以上。现在我想在处理图像时显示进度,让用户了解正在发生的事情 我的工作比较复杂,有多个嵌套循环 e、 g for($y=0;$y

我制作了一个web应用程序,可以将几乎所有位图图像转换为minecraft块的马赛克

它可以工作,但处理大图像可能需要一分钟以上。现在我想在处理图像时显示进度,让用户了解正在发生的事情

我的工作比较复杂,有多个嵌套循环

e、 g

for($y=0;$y<$fullrows;$y++){
对于($x=0;$x<$fullcolumns;$x++){
对于($yinside=$y*$texty;$yinside<($y+1)*$texty;$yinside++){
对于($xinside=$x*$textx;$xinside<($x+1)*$textx;$xinside++){
//计算图片的平均颜色
}
}
对于($ytexture=0;$ytexture<$texty;$ytexture++){
对于($xtexture=0;$xtexture<$textx;$xtexture++){
//用相应的纹理替换图片块
}
}                
}
}
}
//更多用于不均匀边的代码和循环
我已经想出了如何实现进度变量和最大值变量。因此,当作业完成时,p=m。100*p/m将有效地计算作业期间的进度百分比

然而,我不知道如何在没有轮询和兼容IE 8-9的情况下返回该进度。(不轮询和具有最大兼容性)

我读到:

本文中的演示不起作用。。我不知道如何在循环中实现这些东西

我知道他在利用
ob\u implicit\u flush(真的);和ob_end_flush()
这将使php后端脚本输出到我的客户端脚本

然而,在我的循环中,我使用php GD打开和关闭纹理图像。我还填充和复制图像。这些操作不也将被输出吗?如何选择我要为进度回显的内容?不回应

这篇文章的作者谈到了彗星,我是否应该研究它以更好地理解它

我需要一些解释。谢谢

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