Php 如何创建附加到服务器端进程的进度条?

Php 如何创建附加到服务器端进程的进度条?,php,joomla,progress-bar,Php,Joomla,Progress Bar,我们的云主机遇到了一个问题-他们更改了apache设置以强制缩短页面超时时间,现在在某些耗时超过15秒的过程(报表创建等)中(客户端对此没有问题;我们正在处理大量数据),我们收到一个错误: The proxy server received an invalid response from an upstream server. The proxy server could not handle the request POST /administrator/index.php. Reason

我们的云主机遇到了一个问题-他们更改了apache设置以强制缩短页面超时时间,现在在某些耗时超过15秒的过程(报表创建等)中(客户端对此没有问题;我们正在处理大量数据),我们收到一个错误:

The proxy server received an invalid response from an upstream server.
The proxy server could not handle the request POST /administrator/index.php.

Reason: Error reading from remote server
我已经确认我们的代码仍然在后台正确运行,并与主机再次确认这实际上只是一个超时。他们的建议是创建一个与后端代码关联的进度条;这样apache就知道某些事情仍在进行,不会超时

我已经完成了与页面加载事件相关联的进度条(即,当加载所有图像时,等等),但不知道如何创建与后端代码相关联的进度条。这是一个Joomla站点,用mvc php编码,导致问题的代码是模型的一部分——可能涉及的各个部分都在进行大量的查询。正确索引表并优化查询;问题不在于如何让进程花费更少的时间——因为我们在一台云服务器上,明天超时限制可能会更改为5秒,而不会发出任何警告。我需要的是有人给我指出如何创建进度条的正确方向,以便它实际上与模型中正在运行的函数相关联


有什么想法吗?就这方面而言,我是一个完全的初学者

无论后台进程做什么,都应该每隔X秒或在其流中的设置位置更新一个文件或数据库条目,并以完成百分比进行更新。然后,您可以每隔X秒从Javascript调用另一个脚本,它通过数据库记录返回完成的百分比

updateRecord(0);
readLargeFile();

updateRecord(25);
encodeLargeFile();

updateRecord(50);
writeLargeFile();

updateRecord(75);
celebrate();

updateRecord(100);

我能想到的最简单的方法是使用两步流程:

  • 让模型在到达临界点时将事件写入文本文件或其他文件
  • 使用一些ajax方法让页面定期检查该文件的更新,并更新进度条