2010-03-26 45 views
1

我有一个相当长的一段运行的脚本,我使用ob_start()缓冲输出和打印结果的脚本执行完毕后。如何在从ob_start()打印缓冲区内容之前显示加载动画?

我需要表现出一定的加载动画,而脚本执行,并在脚本执行完毕输出替换它。

我知道,它可以使用JavaScript和jQuery相当做得很漂亮。我只是想知道是否可以单独使用PHP来完成?

是否有任何允许PHP做这个图书馆?

回答

2

不幸的是你不能使用PHP(这是在服务器上运行)来改变已经被发送到客户端的HTML。
换句话说,你可能不得不使用JavaScript来实现你想要做的事情。

+0

我想我可以在打印输出到屏幕之前调用一些JavaScript函数....? – SpikETidE 2010-03-26 10:00:54

+0

不,JavaScript运行在客户端上,因此您必须打印加载页面,然后使用一些JavaScript来发出AJAX请求,并使用JS /使用数据重定向到页面来更改HTML。 – mdm 2010-03-26 10:05:54

+0

@SpikeETidE您可以在打印结果之前打印一些隐藏加载动画的Javascript。 – Yacoby 2010-03-26 13:10:42

0

你不能代替你已经用PHP刚刚发送的内容。你只能附加到它。我看不出有什么实际的方法来做你想用PHP做的事情。

+0

我不想修改已发送的内容..我只是试图删除将在打印输出之前在一个单独的div中的加载动画.... – SpikETidE 2010-03-26 10:02:27

+0

@SpikETidE加载动画是内容已发送。删除它会被视为修改内容。 – 2010-03-26 10:25:55

0

可以尝试是这样的:

<!Doctype> 
<title>hide later</title> 
<p>Wait 3 seconds</p> 
<?php 
ob_start(); 
sleep(3); 
?> 
Done! 
<style>p{display:none}</style> 
<?php 
ob_end_flush(); 

但是......它在Opera才有效。 :) IE,WebKit和Gecko会在渲染任何内容之前等待最后一个位。 哦,它是无效的标记。

相关问题