Php 等待服务器时HTML隐藏窗口

Php 等待服务器时HTML隐藏窗口,php,html,Php,Html,我有一个html表单,它在我的服务器上将一个动作设置为php脚本。该脚本发出webservice请求,运行需要几秒钟。然后,该php脚本有一个html主体,该主体将onload属性设置为关闭窗口。其思想是,在用户提交表单后,窗口关闭,请求发送到服务器。但是,由于有几秒钟的延迟,用户单击submit,然后它就挂起,直到所有Web服务完成,然后php脚本按预期关闭窗口 我希望在点击submit时隐藏窗口,而不等待php脚本完成,从而让它看起来更快。有没有办法做到这一点?提前感谢。我支持您重定向到一个

我有一个html表单,它在我的服务器上将一个动作设置为php脚本。该脚本发出webservice请求,运行需要几秒钟。然后,该php脚本有一个html主体,该主体将onload属性设置为关闭窗口。其思想是,在用户提交表单后,窗口关闭,请求发送到服务器。但是,由于有几秒钟的延迟,用户单击submit,然后它就挂起,直到所有Web服务完成,然后php脚本按预期关闭窗口


我希望在点击submit时隐藏窗口,而不等待php脚本完成,从而让它看起来更快。有没有办法做到这一点?提前感谢。

我支持您重定向到一个带有gif的页面,该页面显示加载,并在该页面上进行处理。这可能就是我要做的

我不确定你所说的“隐藏窗户”是什么意思,也许这就是你所说的


如果你的意思是最小化窗口,首先,为什么?其次,我不确定您是否能做到这一点,如果可以的话,它可能是javascript(客户端代码)

不太可能。如果您更早地关闭窗口,我怀疑您可能无法收到完整的处理请求

不知道为什么要关闭浏览器窗口。在大多数选项卡式浏览器中,关闭窗口的效果可以忽略不计

如果您关闭的是自己的弹出窗口,那么您可以将表单提交定位到父窗口,然后弹出窗口可以更快地关闭


我还没有完全了解PHP的可能性,但是如果您对将web服务结果发送到浏览器不感兴趣,那么您可以将它们放在单独的作业/线程/进程(无论什么)上,并在等待它们完成之前做出响应?

当您将formdata发送到web服务时,其余的将发生在服务器上,因此您应该能够将onload脚本移动到按钮的onclick事件

差不多

<input type="Button" onclick="document.thisform.submit();window.close();" value="Click" />


这是由head编写的,因此可能包含一些错误

如果它立即关闭,数据将不会被提交。您可以尝试使用客户端javascript进行此操作。如果这是由站点上的另一个页面打开的弹出窗口,则您可以使用javascript(
window.parent
)从父页面进行提交。这样,关闭弹出窗口不会中断处理。如果您使用AJAX,则不必重新加载父页面或执行任何操作。php手册中有一条用户注释,描述了一种让浏览器断开连接但保持脚本在服务器上运行的方法。(也有其他方法使用过程控制或系统命令,但这很简单,如果可行的话…)我还没有尝试过,所以YMMV。方法是在客户端断开连接时中止脚本,尽管它可以更改。