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

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

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

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

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

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

谢谢!

【问题讨论】:

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

标签: php javascript execution


【解决方案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!";
    
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      • 2013-09-26
      • 1970-01-01
      • 2014-04-29
      相关资源
      最近更新 更多