Как показать загрузочную анимацию перед печатью содержимого буфера из ob_start ()? - PullRequest
1 голос
/ 26 марта 2010

У меня есть сценарий, который выполняется довольно долго, и я использую ob_start() для буферизации вывода и печати результата после завершения выполнения сценария.

Мне нужно показать некоторую анимацию загрузки во время выполнения сценария и заменить ее выводом после завершения выполнения сценария.

Я знаю, что это можно сделать довольно красиво с помощью JavaScript и jQuery. Мне просто интересно, можно ли это сделать с помощью только PHP?

Есть ли какая-нибудь библиотека, которая позволяет PHP делать это?

Ответы [ 3 ]

2 голосов
/ 26 марта 2010

К сожалению, вы не можете использовать PHP (который работает на сервере) для изменения HTML, который уже был отправлен клиенту.
Другими словами, вам, вероятно, придется использовать JavaScript для достижения того, чего вы хотите.

0 голосов
/ 26 марта 2010

Вы можете попробовать что-то вроде этого:

<!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 будут ждать последнего бита перед тем, как что-либо визуализировать. О, и это неверная разметка.

0 голосов
/ 26 марта 2010

Вы не можете заменить уже отправленный контент только PHP. Вы можете только добавить к нему. Я не вижу практического способа делать то, что вы хотите делать с помощью только PHP.

...