我有一个相当长的一段运行的脚本,我使用ob_start()
缓冲输出和打印结果的脚本执行完毕后。如何在从ob_start()打印缓冲区内容之前显示加载动画?
我需要表现出一定的加载动画,而脚本执行,并在脚本执行完毕输出替换它。
我知道,它可以使用JavaScript和jQuery相当做得很漂亮。我只是想知道是否可以单独使用PHP来完成?
是否有任何允许PHP做这个图书馆?
我有一个相当长的一段运行的脚本,我使用ob_start()
缓冲输出和打印结果的脚本执行完毕后。如何在从ob_start()打印缓冲区内容之前显示加载动画?
我需要表现出一定的加载动画,而脚本执行,并在脚本执行完毕输出替换它。
我知道,它可以使用JavaScript和jQuery相当做得很漂亮。我只是想知道是否可以单独使用PHP来完成?
是否有任何允许PHP做这个图书馆?
不幸的是你不能使用PHP(这是在服务器上运行)来改变已经被发送到客户端的HTML。
换句话说,你可能不得不使用JavaScript来实现你想要做的事情。
你不能代替你已经用PHP刚刚发送的内容。你只能附加到它。我看不出有什么实际的方法来做你想用PHP做的事情。
我不想修改已发送的内容..我只是试图删除将在打印输出之前在一个单独的div中的加载动画.... – SpikETidE 2010-03-26 10:02:27
@SpikETidE加载动画是内容已发送。删除它会被视为修改内容。 – 2010-03-26 10:25:55
您可以尝试是这样的:
<!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会在渲染任何内容之前等待最后一个位。 哦,它是无效的标记。
我想我可以在打印输出到屏幕之前调用一些JavaScript函数....? – SpikETidE 2010-03-26 10:00:54
不,JavaScript运行在客户端上,因此您必须打印加载页面,然后使用一些JavaScript来发出AJAX请求,并使用JS /使用数据重定向到页面来更改HTML。 – mdm 2010-03-26 10:05:54
@SpikeETidE您可以在打印结果之前打印一些隐藏加载动画的Javascript。 – Yacoby 2010-03-26 13:10:42