这是一个复杂的问题,所以我会尽量准确。
我已经尝试过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'。
答案 0 :(得分:1)
PHP在继续(see this previous answer)之前默认等待完成函数调用,因此PHP必须等待页面在返回之前完全加载。
AJAX不需要&#34;许多更改&#34;如果这是真正的程序行为。您只需要一个新文件,例如longformresult()
,它会返回TxxAA
的输出,您可以稍后将其输入到您的页面中。