如何在页面加载完成后调用函数

时间:2011-07-08 13:51:24

标签: php

我试图在页面发送到浏览器后调用一个函数,但我还没有找到办法。

我已尝试过register_shutdown_function和__destruct,但它不起作用。

这是我的结构:

register_shutdown_function('MyClass::Save');
MyClass::Initialize();
CreateAllOutput();

MyClass :: Save里面有一个睡眠(20)。

在CreateAllOutput()之后调用shutdown函数,但事实是浏览器上的加载栏只在Save函数执行完毕后等待20秒......我尝试使用非静态类和__destruct里面有一个睡眠(20),同样的事情发生了。

有没有办法让函数只在输出全部发送到浏览器后执行?

提前谢谢。

1 个答案:

答案 0 :(得分:2)

通常:。除了刷新所有输出然后调用它之外没有可能,但浏览器中的加载栏也不会完成。

我唯一能想到的是将iFrame放入页面以使用save函数调用PHP文件。或者你可以进行Ajax调用。

第三种可能是拨打exec() Documentation )。在使php文件可执行后,您可以使用该方法运行它。如文档中所述:

  

如果程序以此启动   功能,以便继续   在后台运行,输出   该程序必须重定向到一个   文件或其他输出流。失败   这样做会导致PHP挂起,直到   程序的执行结束。