php - 显示部分页面,然后插入需要一段时间才能完成的函数的输出
问题描述
在从函数输出内容之前,我需要显示页面的大部分内容。该函数需要一段时间来执行,并返回页面的一些内容。我需要先显示页面的其余部分,然后运行函数,然后“插入”函数输出。
看来我需要在函数的开头使用 ob_start ,然后将该数据存储在带有ob_get_content()
. 但我还需要在页面的其余部分显示后运行该函数。
这是我尝试过的一些代码但没有成功(这是body标签内的内容区域):
<div id='part1'>
<p>here is part 1 of the content</p>
</div>
<div id='part2'> // this is where the function output will be inserted after processing it
<p>part 2</p>
<?php echo long_function();?>
</div>
<div id='part3'>
<p>this is part 3 of the content
</div>
<?php
function long_function() {
// some process that takes a long time to get data
// and stores it in the $part2_content
return $part2_content;
}
结果应该是显示part1和part3 div内容。然后,当long_function()
完成收集数据时,该数据应在“part2”部分中输出。
我试图ob_start()
在 的开头放置一个long_function()
,然后$part2_content = ob_get_contents()
存储该输出数据(没有 ob_flush)。
我认为我可能需要向“part2”ID 添加某种 DOM“写入”,但不确定要完成的正确组合。
解决方案
基于这个完全可以接受的答案: https ://stackoverflow.com/a/46871956/17292588
PHP 是一种服务器端编程语言。它在您请求页面时执行。所以你不能在页面加载后执行它。如果您需要检查客户端是否已加载某些内容,则必须使用诸如 JavaScript 之类的客户端编程语言。
我建议您将它long_function
放在另一个路由中,并在加载页面期间(或之后)使用 Ajax 请求它。
推荐阅读
- linux - 将同名文件夹分组
- wordpress - 如何在没有用户名或密码的情况下对 WordPress REST 请求进行身份验证?
- rust - 创建自定义形状的 Cairo::Region
- python - 如何使用 while 循环重复生成随机加法问题?
- javascript - 在从 API 调用填充的反应选择下拉列表中设置默认值
- c - 为什么使用的数据类型为“long long int”与“int”相比,运行时间存在差异?
- python-3.x - 带有图标的 Tkinter 按钮:`_tkinter.TclError:图像不存在`
- python - 类属性前的单个下划线和没有设置器的 @property 有什么区别?
- lightning-network - c-lightning 浏览器上的公共节点数据
- regex - 是否有一种简洁的方法可以将特定的大写字母(以及字符之前和之间的不同数量的空格)精确匹配三遍