繁体   English   中英

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

[英]How can I create a progress bar attached to a server-side process?

我们只是遇到了与我们的云主机有关的问题-他们更改了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知道事情还在继续,不会超时。

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

有任何想法吗? 就此而言,我是一个完整的初学者。

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

updateRecord(0);
readLargeFile();

updateRecord(25);
encodeLargeFile();

updateRecord(50);
writeLargeFile();

updateRecord(75);
celebrate();

updateRecord(100);

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

  1. 让模型将事件写到文本文件或到达关键点的东西。
  2. 使用某种ajax方法使页面定期检查该文件是否有更新,并以此方式更新进度条。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM