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

cakephp:在执行进程/函数时将输出发送到浏览器,cakephp,Cakephp,如何在cakephp中创建进度条 其他相关问题是, 比方说,对于循环,如何将每次迭代的输出发送到浏览器。。。。。用cakephp。。。。 我试着使用setflash函数,但对我不起作用 我尝试以上内容的主要目的是,在执行函数时,我希望每隔几秒钟向浏览器发送一次输出,否则我将进入timout问题 谢谢…你真的不能这么做。返回的网页是静态的,发送时无法更改。在纯PHP中,您可以在获得所有输出之前发送部分输出,因此可以使用类似($i=0;;)echo$i++)的for但不能在Cake中执行此操作,因为

如何在cakephp中创建进度条

其他相关问题是,

比方说,对于循环,如何将每次迭代的输出发送到浏览器。。。。。用cakephp。。。。 我试着使用setflash函数,但对我不起作用

我尝试以上内容的主要目的是,在执行函数时,我希望每隔几秒钟向浏览器发送一次输出,否则我将进入timout问题


谢谢…

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


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

您不能单独使用PHP(或CakePHP)执行此操作。您可以使用AJAX和PHP(或CakePHP)来实现这一点,但解释这一点超出了本论坛的范围。谷歌“AJAX PHP progress”并花时间学习如何操作。

你好,利奥,谢谢你的回复。。。我知道答案可能超出了这个论坛的范围,但如果你还想详细说明一下步骤,那可能会有所帮助。。。。。无论如何,我真的很感谢你的帮助…试着说:我不明白你为什么会有持续的问题。Hii sibidiba,谢谢你的回复。。。这是我的确切问题,用户提交表单,当表单处理时,我必须向浏览器发送一些输出以保持服务器连接的活动状态。。。那么,在这种情况下,我该如何在cakephp中做到这一点呢?我看到你在第一次回复中提到了这一点,但我真的没有从我的案例中得到它……可能的情况是:首先,你必须通过AJAX提交表单。在其在服务器上执行期间,将更新包含状态(例如%)的会话变量。提交成功后,将重新加载/重定向。第二:在提交和完成之间,您可以定期执行一个单独的AJAX调用,该调用可以快速从会话变量返回当前状态。它可以更新元素以显示进度。(会话变量由客户端cookie标识,但数据是服务器端的。它比数据库调用便宜,但不支持良好的一致性。)嗨,sibidiba,你能给我解释一下,我是如何进行ajax调用的,在上述情况下,在cakephp中执行另一个ajax调用时,Cake的基本不同运行实例处理并行ajax调用。这是特定于PHP的:请求页面会启动完整PHP程序的完整和独立执行。这意味着事情可以并行发生,您必须在实现逻辑中确保事务安全。