如何在从 ob_start() 打印缓冲区内容之前显示加载动画?

发布于 2024-08-26 10:43:57 字数 200 浏览 11 评论 0原文

我有一个运行相当长一段时间的脚本,我使用 ob_start() 来缓冲输出并在脚本执行完成后打印结果。

我需要在脚本执行时显示一些加载动画,并在脚本执行完成时将其替换为输出。

我知道使用 JavaScript 和 jQuery 可以非常漂亮地完成它。我只是想知道是否可以单独使用 PHP 来完成?

有没有任何库可以让 PHP 做到这一点?

I have a script that runs for quite a while and I am using ob_start() to buffer the output and print the result after the script finishes executing.

I need to show some loading animation while the script executes and replace it with the output when the script finishes executing.

I know that it can be done quite beautifully with JavaScript and jQuery. I was just wondering whether it can be done using PHP alone?

Is there any library that allows PHP to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

合久必婚 2024-09-02 10:43:57

不幸的是,您无法使用 PHP(在服务器上运行)来更改已发送到客户端的 HTML。
换句话说,您可能必须使用 JavaScript 来实现您想要做的事情。

Unfortunately you can't use PHP (Which is running on the server) to alter the HTML that has already been sent to the client.
In other words you are probably going to have to use JavaScript to achieve what you want to do.

瑕疵 2024-09-02 10:43:57

您无法仅使用 PHP 替换已发送的内容。您只能附加到它。我没有看到任何实用的方法可以单独使用 PHP 完成您想要做的事情。

You can't replace content you have already sent with just PHP. You can only append to it. I don't see any practical way of doing what you want to do with PHP alone.

2024-09-02 10:43:57

可以尝试这样的事情:

<!Doctype>
<title>hide later</title>
<p>Wait 3 seconds</p>
<?php
ob_start();
sleep(3);
?>
Done!
<style>p{display:none}</style>
<?php
ob_end_flush();

但是……它仅适用于 Opera。 :)
IE、WebKit 和 Gecko 将在渲染任何内容之前等待最后一点。
哦,这是无效的标记。

You could try something like this:

<!Doctype>
<title>hide later</title>
<p>Wait 3 seconds</p>
<?php
ob_start();
sleep(3);
?>
Done!
<style>p{display:none}</style>
<?php
ob_end_flush();

But … it works in Opera only. :)
IE, WebKit and Gecko will wait for the last bit before they render anything.
Oh, and it’s invalid markup.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文