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 检索数据,就像我现在正在做的那样,但是当这个过程是运行时,我希望有一个“结果正在加载”页面/消息,而不是空白的白色页面,然后一旦脚本执行完成并且所有结果都已返回和处理,“结果正在加载”页面/消息消失。
我对 php 和 javascript 非常熟悉,但还没有弄清楚这一点。任何有关此事的指导或建议将不胜感激。
谢谢!
【问题讨论】:
首先想到的当然是客户端插入加载图像并使用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