![]() |
Буферизация вывода Php
Задача следующая:
Есть скрипт импорта БД пользователей. Импорт осуществляется из XML каталога, причем несколько минут. Не могу сделать так чтобы скрипт вывел в браузер СРАЗУ какой либо текст, например "Идет импорт БД, ждите...", потом спокойно импортировал базу и вывел результат работы. Обычно же PHP дожидается конца работы скрипта и лишь потом выводит всю страницу разом. Баловался я с ob_end_flush() и т.д., но я уже видимо переработал, а доделать сегодня надо :mad: Есть у кого рабочий пример? Вариант с аяксом и фреймами просьба не предлагать, результата нужно добится одним скриптом. |
пхп выполняется на сервере и только потом передается в браузер , сомневаюсь что можно обойтись без аякса и тп. вещей
|
Знаю я слава богу что пхп серверный язык) НО видел я пхп скрипт который без джава скрипта выводил построчно данные в браузер, а вот реализации не знаю...
|
Код:
echo 'some text'; |
может лучше использовать кеш в данном случае? на дёргать каждый раз базу попусту, особенно если данные не именились с момента последнего запроса...
|
PHP код:
|
проще сделать ява скриптом... добавить в кнопку
Код HTML:
onclick="document.getElementById('progress').style.display = '';" |
Есле те надо лишь безсмысленный вывод слова,просто,то можно сделать вопше так
<?php echo "Идет импорт баз,подождите!"; ?> <?php твой код скрипта.... ?> тогда сервер обрабатывает ето как два роздельных скрипта,и тот что первый,выполнится,выведетс я результат,тогда второй будет выполнятся....Есчё есть схожая ф-цыя, ob_implicit_flush(0); есле ето в начала скрипта положить,то тогда будут выводится данные по мере загрузки,например так <?php ob_implicit_flush(0); echo "Импор идет..."; твой код ?> Так в начале загрузки выведется текст,скрипт будет выподнятся более как по очереди,с начала ето выводится,потому что тут обрабаотывать ненадо,потом будет обрабатяватся дальше и выводится.... |
| Время: 06:28 |