cakephp:在执行进程/函数时将输出发送到浏览器

时间:2010-06-22 16:44:05

标签: cakephp

如何在cakephp中创建进度条?

和其他相关问题是,

让我们说,对于一个循环,如何在每次迭代时将输出发送到浏览器.....在cakephp .... 我尝试使用setflash函数,但没有为我工作....

我尝试上述事情的主要目的是,我希望在我的功能执行时每隔几秒向浏览器发送一些输出,否则我会遇到问题......

...谢谢

2 个答案:

答案 0 :(得分:7)

你真的不能这样做。返回的网页是静态的,您在发送时无法更改它。在纯PHP中,您可以在输出所有输出之前发送部分输出,因此您可以使用for($i=0;;) echo $i++;之类的内容但不能在Cake中执行此操作,因为在将其插入到视图之前需要完全呈现视图布局。 进度条在(纯)HTML中是不可能的,因为如上所述,您无法修改已发送的HTML响应。

但是,您可以使用JavaScript:您可以使用JS返回HTML页面,该页面使用AJAX调用来查询操作的状态/百分比,然后分别在HTML中设置进度条。它可以执行后者(修改HTML),因为JS在页面检索后在客户端的浏览器中运行。

答案 1 :(得分:1)

你不能单独使用PHP(或CakePHP)。您可以使用AJAX PHP(或CakePHP)来完成它,但要解释这将超出本论坛的范围。谷歌“AJAX PHP进展”并花时间学习如何做到这一点。