Как показать загрузочную анимацию перед печатью содержимого буфера из ob_start()?
У меня есть скрипт, который работает довольно долго, и я использую ob_start()
буферизовать вывод и распечатать результат после завершения выполнения скрипта.
Мне нужно показать некоторую анимацию загрузки во время выполнения скрипта и заменить его выводом, когда скрипт завершит выполнение.
Я знаю, что это можно сделать довольно красиво с помощью JavaScript и jQuery. Мне просто интересно, можно ли это сделать с помощью только PHP?
Есть ли библиотека, которая позволяет PHP сделать это?
3 ответа
К сожалению, вы не можете использовать PHP (который работает на сервере), чтобы изменить HTML, который уже был отправлен клиенту.
Другими словами, вам, вероятно, придется использовать JavaScript, чтобы достичь того, чего вы хотите.
Вы не можете заменить контент, который вы уже отправили, только PHP. Вы можете только добавить к нему. Я не вижу практического способа делать то, что вы хотите делать с помощью только PHP.
Вы можете попробовать что-то вроде этого:
<!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();
Но... это работает только в Опере.:) IE, WebKit и Gecko будут ждать последнего бита перед тем, как что-либо рендерить. О, и это неверная разметка.