PHP:在执行 php 脚本时显示“加载”页面

Posted

技术标签:

【中文标题】PHP:在执行 php 脚本时显示“加载”页面【英文标题】:PHP: Display a "loading" page while a php script is executing 【发布时间】:2010-10-01 05:03:56 【问题描述】:

这就是我现在所拥有的......

我有一个网页,当访问它时,它会通过他们的开放 API 连接到surveygizmo.com,检索大量数据,然后将这些数据返回给我以供我处理。这个过程大约需要 10-12 秒,在执行过程中,页面只是处于“加载”状态,我看到的是一个空白页面。

这就是我想要发生的事情......

当访问同一个网页时,我希望它启动脚本执行并开始通过他们的 API 从surveygizmo.com 检索数据,就像我现在正在做的那样,但是当这个过程是运行时,我希望有一个“结果正在加载”页面/消息,而不是空白的白色页面,然后一旦脚本执行完成并且所有结果都已返回和处理,“结果正在加载”页面/消息消失。

我对 phpjavascript 非常熟悉,但还没有弄清楚这一点。任何有关此事的指导或建议将不胜感激。

谢谢!

【问题讨论】:

首先想到的当然是客户端插入加载图像并使用AJAX查询服务器............单独在服务器端......也许缓冲区刷新? 【参考方案1】:

你会想看看 AJAX。解决方案是向浏览器发送一个“加载”页面,其中包含显示加载消息的 javascript,然后异步连接到实际数据生成服务器端脚本。当您收到并处理数据后,您可以将其插入 DOM 并删除加载消息。谷歌搜索 XMLHttpRequest 将为您提供详细信息。

【讨论】:

【参考方案2】:

创建一个显示所需加载消息的加载页面。然后使用 ajax(我强烈推荐 jQuery)加载一个单独的 php 文件来加载外部数据。一旦数据返回到您的加载页面,隐藏加载消息并将其替换为 ajax 的输出是一项简单的任务。

【讨论】:

我会建议不要将大写字母用于强调。您可以在要强调的斜体字之前和之后放置*,或在粗体字上放置**,在斜体和粗体字中(在答案中,但不是cmets)***。另外,我同意你的建议,jQuery's pure-awesome. 是的,我对 ajax 很熟悉,只是不知道这是否是解决我特定问题的理想解决方案。【参考方案3】:
<?php

     echo "Working...<br/>\r\n"; flush(); //output to the browser before the rest of the execution

     connect_surveygizmo(); //this is going to take while.

     echo "Finished!";

?>

【讨论】:

以上是关于PHP:在执行 php 脚本时显示“加载”页面的主要内容,如果未能解决你的问题,请参考以下文章

在后台运行 php shell_exec 时显示加载栏或 gif

每当浏览器加载图标处于活动状态时显示加载图标

在 Laravel + Vue 中页面加载时显示所有数据

如何在页面加载时显示 ajax 加载 gif 动画?

在共享主机中使用系统从 php 执行 python 脚本时显示错误(显示其他输出)

使用参数重新加载页面