我有一个控制器,它执行一些广泛而耗时的操作,我想向用户显示其部分结果;我认为我必须处理“进度条”,看了一些例子和插件,但它们远远超出我的知识(目前!)。
现在,我很满意以一种简单的方式将部分结果“回显”到视图中。
我的控制器:
..
foreach ($response->messages as $msg) {
..
..(do something)..
echo (partial results)."<br>";
}
所以问题是,视图仅在循环结束时呈现,并且在漫长的等待空白屏幕后立即显示部分结果。
我希望我的'回声'在foreach循环中显得“实时”。这是一种方法吗?
答案 0 :(得分:0)
您可能需要flush()
ob_flush()
。
foreach ($response->messages as $msg) {
// ..(do something)..
echo (partial results) . "<br>";
ob_flush();
flush();
}
exit;
请注意,您应该在方法结束时调用exit
- 因为2.0.14 Yii不允许使用echo i控制器,因此您需要手动停止进一步的响应处理。