我正在开发一个系统,应该显示客户端的报告。这些报告需要在显示实际报告之前完成以前的计算。执行多次相同的PHP脚本没有超时
由于计算过程有时是乏味和长,有时,该报告使用数据被刷新时,用户必须能够重新计算这些报告。由于这些原因,生成报告的脚本与实际显示报告的脚本分离。
总之,我有两个剧本,可以说他们是所谓的“generateReport.php”和“showReport.php”。
当用户点击一个客户端上看到它的报告“showReport.php”检查是否需要已经生成,如果是,它会显示报告中的数据。 如果数据不存在,它会将浏览器转发到'generateReport.php',并在完成后将浏览器转发到'showReport.php'
问题出现在用户点击两个客户端时他们都需要生成数据。
首先点击客户端获取到“generateReport.php”,其中用户将看到一个酒吧,让他/她知道整个过程。虽然第二个客户端应该生成的页面就停留在那里,等待。
如果第一个客户端需要很长时间,第二个客户端显然会超时并停留在那里。
我知道,因为im在同一个浏览器的两个选项卡上点击相同的php('generateReport.php'),所以apache不会同时处理这两个请求,是否有办法避免第二个(也可能是第三个,第四个等)。窗口不超时?
注: 'generateReport.php' 和 'showReport.php' 具有参数或者set_time_limit(0);只是为了测试,它显然没有做任何事情。
注2:我有机会为php.ini在我的托管环境
注3:所以对于稍长/只枯燥的文字后
Thanx提前对不起!
EDIT1:
谢谢曲折的回复。
- 请求由HTTP GET通过用户单击锚标签生成。
- header(“Location:...”)用于使用户从generateReport到showReport。
- 我是指浏览器选项卡,是的。
这一切都不是很清楚。用户如何生成请求,请求AJAX或加载页面的链接?用什么方法将用户从generateReport.php带到showReport.php?这听起来像AJAX在这里可能会有所帮助,例如,当用户请求报告时向用户显示工作指标,生成并返回报告并显示报告。当你说'标签'时,你指的是你的页面或单独的浏览器选项卡中的一些元素? – Twisty
谢谢Twisty请参阅我的编辑!在'generateReport.php'上使用AJAX,用户会看到一个进度条,其中包含关于生成脚本正在做什么和剩余时间的评论! –
您需要多久生成一次报告?每天一次?小时? –