我有一个html表单,其动作设置为我的服务器上的php脚本。该脚本发出Web服务请求并需要几秒钟才能运行。那个PHP脚本然后有一个html主体,其onload属性设置为关闭窗口。这个想法是,在用户提交表单后,窗口关闭,请求被发送到服务器。但是,由于有几秒钟的延迟,用户点击提交,然后它会挂起,直到所有的网络服务完成,然后php脚本按预期关闭窗口。
我希望通过隐藏窗口可以让它看起来更快,因为它们点击提交而无需等待php脚本完成。有没有办法做到这一点?提前谢谢。
答案 0 :(得分:0)
我认为您可以重定向到一个页面,该页面上有一个gif表示正在加载并在该页面上进行处理。这可能就是我要做的事情。
我不确定你的意思是“隐藏窗户”可能this link正是你所说的。
如果你的意思是最小化窗口,首先,为什么?其次,我不确定你能做到这一点,如果可以,它可能会在javascript(客户端代码)
答案 1 :(得分:0)
不是真的。如果您之前关闭了窗口,则可能无法收到我怀疑的完整处理请求。
不确定为什么你甚至会关闭浏览器窗口。在大多数标签式浏览器中,关闭窗口的效果可以忽略不计。
如果你自己的弹出窗口正在关闭,你可以将表单提交目标定位到父窗口,然后弹出窗口可以更快地关闭。
我并不完全掌握PHP的可能性,但如果您对将Web服务结果发送到浏览器不感兴趣,那么您可以将它们放在单独的作业/线程/进程(无论如何)并等待他们完成之前做出回应?
答案 2 :(得分:0)
当您将formdata发送到Web服务时,其余部分将在服务器上发生,因此您应该能够将onload脚本移动到按钮的onclick事件。
像
这样的东西<input type="Button" onclick="document.thisform.submit();window.close();" value="Click" />
这是由head编写的,因此它可能包含一些错误。