php进度条?

php进度条?,php,progress-bar,loading,Php,Progress Bar,Loading,有没有办法用php显示进度条?我想让用户知道php脚本正在做什么 下面是我网站上的一个结果示例 我有一个静态加载图像,上面有一些文字写着“加载…”,当页面完全加载时,我会隐藏加载分区。我的php脚本会出现在amazon api、ebay api和screen上,并从其他几个站点中删除,我想用以下内容更新加载分区,而不是静态加载分区 加载amazon.com //完成更新加载div后的进度 正在加载ebay.com 等等等等 这可能吗?如果是的话,最好的方法是什么?提前感谢您的帮助 最好的方法是让

有没有办法用php显示进度条?我想让用户知道php脚本正在做什么

下面是我网站上的一个结果示例

我有一个静态加载图像,上面有一些文字写着“加载…”,当页面完全加载时,我会隐藏加载分区。我的php脚本会出现在amazon api、ebay api和screen上,并从其他几个站点中删除,我想用以下内容更新加载分区,而不是静态加载分区

加载amazon.com

//完成更新加载div后的进度

正在加载ebay.com

等等等等


这可能吗?如果是的话,最好的方法是什么?提前感谢您的帮助

最好的方法是让javascript对服务器进行ajax调用,并找出它的位置,这样您就可以向用户提供一些反馈


您可以从一个用于上传的进度条开始,然后继续显示应用程序的进度。

使用AJAX询问PHP目前正在做什么,并使用一个队列系统定义哪些任务已完成或未完成。下面是一个非常基本的示例:

启动任务时,使其设置以下变量:

$_SESSION['isEbayLoaded'] = false;
$_SESSION['isAmazonLoaded'] = false;

一旦PHP加载eBay,它会将isEbayLoaded设置为true,然后AJAX可以简单地询问PHP eBay是否已加载,然后询问amazon,然后询问您需要什么。PHP所要做的就是检查这些变量是否设置为true,这意味着任务已经完成。

我以前用了一个非常简单的解决方案:

ob_flush();
它所需要的只是创建一个具有适当类名的div:

<div class="loading">
    Loading...
</div>

加载。。。
然后,我的PHP基本上是:

foreach ($sites as $site) {
   printAndFlush(<<<CSS
     <style>
       div.loading {
         background: url($site.png) no-repeat right center;
       }
     </style>
CSS;

   scrapeSite($site);
}
foreach($sites as$site){

printAndFlush(我会对每个站点发出请求,并使用该页面的输出(XML、JSON等)让另一个页面知道发生了什么

例如…psuedo代码:

  • 聚集地点
  • 用于加载ajax页面的循环
  • ajax页面返回每个请求,并显示一条状态消息,例如-“正在加载Amazon…”

就是这样!

会话变量是否可以从主页面访问而不重新加载该页面?这是您可能需要考虑的问题。会话变量是由通过AJAX调用的页面读取的,因此当它们在主脚本中设置时,它们应该在设置后可供请求使用。如果没有,您仍然可以使用临时文件或数据库,用于存储信息,在发出AJAX请求时将读取这些信息。为了避免调用PHP,甚至可以将文件存储为.json,然后使用JavaScript请求该文件,并处理关于哪些任务已完成、哪些任务未完成的信息。次要细节,但永远不要关闭括号PrintAndFlush函数。此外,我不认为有任何理由多次打印样式标记。这不是一个实际的函数,只是一个伪php函数。样式标记多次打印的原因是浏览器强制编译,因为每个声明都重写了前一个样式。这是不需要让AJAX正常工作。