2013-04-20 79 views
1

我想做到以下几点:PHP提交表单并获取部分结果是进步

我有,你输入一个IP地址,并以检查几件事情提交到PHP脚本的形式。

输出是渐进的,需要一些时间直到完成。

我想逐渐输出结果并将其发回表单。

你能请指教从哪里开始?

+0

做这种事情的唯一方法就是通过套接字。你的选择可能会像Web套接字(很新),一个Java插件或Flash(我敢肯定他们可以套接字)。否则,将HTTP请求发布到服务器是一种全或无的请求。否则,你不得不把你的页面检查的任何“东西”分成多个步骤,你可以使用AJAX来调用它们,并让脚本显示返回的内容。当然,如果每个请求都很长且密集,请关注服务器上的工作负载。 – jmbertucci 2013-04-20 13:15:58

回答

1

你可以分裂你的PHP脚本在多个脚本。而不是只发送一个请求与表单,你发送多个AJAX请求。 然后在他们回来时显示结果。 由于您从未离开过,因此无需重新发布到表单。

+0

为什么会涉及将PHP脚本分成多个脚本? – ubik 2013-04-20 13:40:39

+0

为了得到按要求逐步输出结果 – 2013-04-20 13:44:19

+0

您是否将脚本分成更小的任务? – ubik 2013-04-20 13:47:03

0

您将需要将任务执行从HTTP请求中分离出来,因为HTTP是无状态的,除非您使用WebSockets或任何其他类流技术,否则将被迫返回即时结果。

因此,我基本上会发送第一个请求,开始在服务器上执行作业(可以使用现成的作业队列),然后这个作业将输出存储在数据库中。作业将独立于HTTP工作流程执行。

然后,您可以使用AJAX轮询服务器,询问进度信息。当然,您可以通过在页面加载时生成的唯一ID或使用cookie来唯一标识客户端。