在浏览器导航之前,让php POST等到页面完成?

时间:2017-10-13 00:37:17

标签: php http post

这是一个复杂的问题,所以我会尽量准确。

我已经尝试过AJAX,但这种形式需要做很多改动。我想知道是否还有其他选择。

我有一个需要很长时间才能完成的表格。假设表单存在于页面A上。表单提交并调用页面B.

页面B看起来像这样,并给出不正确的结果(加载时页面显示为空白)

<html>header</html>
<?php
longformresult()
?>

如果我像这样设置页面我得到了我正在寻找的结果(页面等待,直到完成长功能加载页面,允许我在页面A上显示加载屏幕)

<?php
longformresult()
?>
<html>header</html>

然而这是事情变得非常棘手的地方, longformresult()可能会失败并破坏其下的所有内容

有没有什么方法我可以告诉php在发送页面之前等到页面完全加载,允许我在页面A上有一个加载屏幕?或者防止die()被杀死我的页面?我基本上需要延迟页面B的出现,实际上只是睡眠()可能是我迄今为止最好的方法

<?php
sleep(4)
?>
<html>header</html>
<?php
longformresult()
?>

编辑:结论(不是我正在寻找的修复)

我使用了ajax并完全删除了'Page B'。

1 个答案:

答案 0 :(得分:1)

  1. PHP在继续(see this previous answer)之前默认等待完成函数调用,因此PHP必须等待页面在返回之前完全加载。

  2. AJAX不需要&#34;许多更改&#34;如果这是真正的程序行为。您只需要一个新文件,例如longformresult(),它会返回TxxAA 的输出,您可以稍后将其输入到您的页面中。

相关问题