Задержка PHP эхо, не останавливая страницу? - PullRequest
0 голосов
/ 04 июня 2011

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

Кто-нибудь знает как?

У меня есть ниже, но вместо того, чтобы рисовать ВРЕМЯ и «Привет», затем ждать секунду и рисовать «До свидания», затем еще одну секунду и, наконец, «Конец» .... Он ждет 2 секунды и затем рисует все.

<?php

echo date('H:i:s');
echo "<br>";
echo 'Hello';
echo "<br>";
sleep(1);
flush();

echo 'Goodbye';
echo "<br>";
sleep(1);
flush();

echo 'The End';
?>

Ответы [ 2 ]

3 голосов
/ 04 июня 2011

Поскольку PHP выполняется на стороне сервера, пользователь не получит вывод, пока не завершится выполнение скрипта.Чтобы добавить видимую задержку вывода сообщений, вам придется использовать JavaScript или другой язык сценариев, выполняемых на стороне клиента.

1 голос
/ 04 июня 2011

Вы можете использовать jQuery таким образом: (Предполагая, что ваш текст инициализирован с помощью hello)

 $('#id-of-your-tag-containing-text').fadeOut(500, function() {
       $('#id-of-your-tag-containing-text').html("GoodBye!");
       $('#id-of-your-tag-containing-text').fadeIn(500);
       $('#id-of-your-tag-containing-text').fadeOut(500, function() {
              $('#id-of-your-tag-containing-text').html("The End!");
        });
       $('#id-of-your-tag-containing-text').fadeIn(500);
}); //Note that the number 500 represents the time delay in milliseconds.
...