2009-04-14 3 views
1

Каков наилучший подход для настройки последовательного вывода для скрипта установщика PHP? Скажем, у меня есть страница и вы хотите отобразить инкрементный вывод в DIV, предоставленный скриптом PHP.PHP: лучший способ для последовательного вывода?

page.html Так может содержать следующее:

<div id="output"> 
    <!-- Script Output Here --> 
</div> 

И install.php может выглядеть следующим образом (для целей тестирования):

<?php 
// Turn off Output Buffering 
ob_end_flush(); 

// Begin Test Output (5 second intervals) 
echo 'Testing incremental output...' . "\n"; 
sleep(5); 
echo 'Step 1...' . "\n"; 
sleep(5); 
echo 'Step 2...' . "\n"; 
sleep(5); 
echo 'Complete!' . "\n"; 

Я думал, AJAX может быть лучшим подходом, но я «Не знаю, как подойти к этому. Если я загружу «install.php» с помощью JavaScript, я не получу все обратно до тех пор, пока скрипт не завершит выполнение (правильно?), Что сделает весь этот вопрос спорным. Я видел это раньше, но не могу найти конкретный пример того, как это было сделано.

Любая помощь оценена!

ответ

2

Я сомневаюсь, что Ajax будет делать то, что вы хотите - вместо этого вам, возможно, придется чаще называть ajax-выборки.

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

Я также добавил в соответствующий файл .htaccess строку, чтобы избежать какой-либо буферизации из-за GZipping вывода (apache2).

SetEnvIf Request_URI "/url/dont/buffer/me.php" gzip=0 

В соответствующем PHP файле:

ini_set('output_buffering', false); 
ini_set('implicit_flush', 'true'); 

и соответствующие вызовы для промывки(). Это в значительной степени охватывает все базы.

-2

Я должен выводить все в текстовый файл и обновления DIV с помощью AJAX, просто вызывая файл .txt

+0

Довольно волосатые; несколько пользователей? Затем у вас есть несколько текстовых файлов. Назовите текстовый файл на основе сеанса? Как насчет нескольких вкладок? О, дерьмо, я просто разделился на ноль. – Anthony

+0

А, завинтите его. Просто установите скрипт установки и создайте анимированный GIF. Это все равно для пользователя. – Calvin

Смежные вопросы