运行在网页背景中的Perl脚本

时间:2014-05-14 16:13:08

标签: php perl background

我有一个网页,它使用php exec()来运行写入文件的perl脚本。问题是,perl脚本需要很长时间才能执行,我想在最终返回之前开始在网页上显示结果。我目前有exec()在div中显示它写入的文件的内容,每3秒重新加载一次。

我似乎无法弄清楚如何在perl脚本完成之前开始加载页面。有没有人知道如何实现这一目标?

3 个答案:

答案 0 :(得分:0)

请参阅Randal关于该主题的权威文章:Watching long processes through CGI。您需要调整他使用的Perl CGI脚本来观察traceroute输出并使用PHP执行类似的操作。基本理念是:

  

浏览器点击表单,用户填写该表单;浏览器提交表单,在验证好信息后,响应分支运行任务,并使用会话密钥重新引导浏览器;分叉进程运行任务,在输出到达时获取输出并更新缓存值,标记何时完成; CGI脚本从缓存中拉出并显示它,只要数据不完整就发送刷新。

答案 1 :(得分:0)

从iframe中的另一个php文件运行你的perlscript。这样它就会执行脚本但你不需要等待它成功。如果perlscript在准备好之前打印到您的文件,您甚至可以在主页中读取这些行并显示第一个结果。

答案 2 :(得分:-1)

如果您没有所有内容,如何关闭页面的正文标记并发送?

您需要将其重新架构为异步加载,其中页面提供调用返回部分结果的服务器URL的javascript,将其附加到DOM,并继续调用服务器URL以获得更多部分结果。