powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) "долгий" вывод данных
25 сообщений из 48, страница 1 из 2
(PHP) "долгий" вывод данных
    #37003067
it-nowa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
суть задачи - вывод данных из БД
скрипт, который запрашивает данные из БД, работает долго - несколько минут
пока все данные из БД скрипт не получит - ничего пользователю не отображается ((((

как организовать скрип/вывод данных, чтобы пользователю отобразилась страница (верх или верх и низ страницы), а по мере получения данных - данные (в центре или хотя бы дописывались вниз страницы)
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37003074
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Партиями в цикле. Боюсь спросить сколько там данных что они долго отображаются?
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37003232
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-nowa,

Никак.
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37003261
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-nowa,

с помошью пхп генерить js файл вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
 var  table = document.createElement('table');
document.body.appendChild(table);
<?php  for ($i= 0 ,$n= sizeof ($arr);$i<$n;$i++): ?>
 var  tr = document.createElement('td');
<?php  foreach ($arr[$i]  as  $text): ?>
 var  td = document.createElement('td');
td.innerHTML = "<?php print strtr($text,array('"'=>'\"')); ?>";
tr.appendChild(td);
<?php  endforeach ; ?>
table.appendChild(tr);
<?php  flush (); ?>
<?php  endfor ; ?>
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37004700
shmaltorhbooks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В данном случае - никак. Пхп кешируемый, если это можно так назвать. То есть пока весь пхп не выполнится - ничего отдано не будет. Единственный выход - разбивать обработку данных из базы на маленькие кусочки и аяксом запрашивать поочеередно все этапы вычисления.
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37004725
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shmaltorhbooksВ данном случае - никак. Пхп кешируемый, если это можно так назвать. То есть пока весь пхп не выполнится - ничего отдано не будет. Единственный выход - разбивать обработку данных из базы на маленькие кусочки и аяксом запрашивать поочеередно все этапы вычисления.
Откройте для себя виртуоз плеск контейнер... тьфу не то. Откройте для себя функцию flush() ...
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37004902
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-nowa,

Открою глаза Топикстартеру и другим говорящим что php этого не умеет.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
ob_implicit_flush( 1 );
for($s='',$x= 0 ;$x< 10 ;$x++) {
	ob_start(); 
	echo 'data '.$i;
	$s = ob_get_contents();
	ob_end_flush();
	ob_end_clean(); 
	sleep( 1 );
}
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37004992
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это не пхп не умеет, это протокол http не умеет.
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37005426
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r uit-nowa,

Открою глаза Топикстартеру и другим говорящим что php этого не умеет.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
ob_implicit_flush( 1 );
for($s='',$x= 0 ;$x< 10 ;$x++) {
	ob_start(); 
	echo 'data '.$i;
	$s = ob_get_contents();
	ob_end_flush();
	ob_end_clean(); 
	sleep( 1 );
}

ничего не доказывающий пример
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37005458
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгенийничего не доказывающий пример
Скрипт раз в секунду отправляет строку "дата".
Проверял - работает. То что можно отправлять данные до того как скрипт закончит выполняться - данный пример показал. Евгений, а вы что имели в виду?
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37005459
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дегтярев Евгенийничего не доказывающий пример
он не доказывает что можно выдавать информацию браузеру порциями?))
ТС именно об этом спрашивал
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37005480
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО несколько хлипка эта отдача порциями. В том смысле, что сильно зависит от настроек сервера. Нарывался на проблему, когда всё нормально работало на тестовом сервере, где PHP установлен модулем Апача, но перестало работать на хостинге, где PHP установлен как CGI и включено gzip-сжатие по дефолту.
Полагаю, что в данном случае более удобен способ вывода части длинной страницы, когда сервер отдаёт по запросу клиента именно тот фрагмент, который видит пользователь (ну, прокрутил он страницу к середине). Кажется, видел подобное решение на каком-то гуглёвом сервисе.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37005595
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkle,

Ну нельзя и нельзя, хоть ты тресни. В классическом варианте, понятное дело. Даже браузер не будет ничего отображать, пока польностью всё не придёт. Это не на пхп или ещё чего-то на сервере делается. Я же говорю, протокол хттп так устроен.
В гугле сделано подгрузкой по технологии JSONP, просьба не путать с JSON - две большие разницы.
JSONP - кроссдоменный аякс, если кому интересно. Ну да, только аяксом это возможно.
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37005668
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSerge,

а че тебе вариант 9907807 не устроил?
если он не заработает, то нужно будет его обрамить тегами <script> и все - проверено, все работает. Браузер как догрзит блок скрипта его выполняет, потом как загрузит второй - выполнит его итд.

Единствено получим таблицу, которая генерироваться вся будет через JS что не есть айс, но тем не менее проблема решена и довольно просто.
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37005693
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,

Креате элемент и всё такое - правильно. Вот только не понял о чём ты говоришь. Этот яваскрипт заработает только тогда, когда целиком и полностью отработает твоя пхп-программа, а смысл?
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37005702
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну сам проверь, если не веришь. То, что ты операторы пхп в страницу вставил, ничего не решает. Сервер с пхп сначала обработают страницу с операторами (я это и назвал пхп-программой), а потом залпом это всё выплёвывают.
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37005709
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeРенат,

Креате элемент и всё такое - правильно. Вот только не понял о чём ты говоришь. Этот яваскрипт заработает только тогда, когда целиком и полностью отработает твоя пхп-программа, а смысл?
попробуй выполнить код: заметь, в поле "q" цыфры меняться раз в секунду, а не один раз через 10 секунд.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<html>
<body>
<div id="q"></div>
<?php
ob_implicit_flush( 1 );
for($s='',$x= 0 ;$x< 10 ;$x++) {
	ob_start(); 
?>
<script language="JavaScript">
document.getElementById('q').innerHTML = <?php print $x; ?>;
</script>
<?php
	$s = ob_get_contents();
	ob_end_flush();
	ob_end_clean(); 
	sleep( 1 );
}
?>
</body>
</html>
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37005715
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ренат,

Завтра посмотрю. Сегодня уже лень даже на код смотреть. Может ты чего-то изобрёл. Хотя, покамест я остаюсь при своём мнении.
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37006256
artas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-nowa,

comet
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37006634
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeНу нельзя и нельзя, хоть ты тресни. Даже браузер не будет ничего отображать, пока польностью всё не придёт. Я же говорю, протокол хттп так устроен.
что именно нельзя?
-нельзя отдавать данные порциями в рамках одного соединения? - МОЖНО
-браузеру нельзя показывать страницу пока она недогрузилась? МОЖНО, это умеют все современные браузеры.
-протокол http не так устроен? как не так? в рамках поставленного ТС вопроса - все реально. нет? обоснуйте, дайте пример который доказывает что вы правы. а то мужики то незнают)
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37007112
Фотография SmeL_md
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
it-nowa,
Оптимизируйте sql запрос, почитайте что такое index. уверен на 90% это то что Вам поможет
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37007306
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SmeL_mdit-nowa,
Оптимизируйте sql запрос, почитайте что такое index. уверен на 90% это то что Вам поможет
it-nowa,

Кстати, чем вызвано такое большое время выполнения скрипта?
- слишком много данных высылается
(как реализовать уже написали)
- или сам запрос долго работает?
(пока мускул не обработает запрос - он ничего не вернет, следовательно тут можно ждать только окончание выполнения. Как посоветовал Смелмд, раставте по нормальному индексы.)
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37010122
it-nowa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ренат, SmeL_md,
запрос сложный, обрабатывает аналитику, оптимизация самого запроса ведется, но резкого ускорения "в разы" на базе в несколько гигов не предвидится :)
вывести надо всего около 10-15 строк (в данный момент), но при изменении отчетности вывести придется 100+ строк
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37010129
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u-нельзя отдавать данные порциями в рамках одного соединения? - МОЖНО
-браузеру нельзя показывать страницу пока она недогрузилась? МОЖНО, это умеют все современные браузеры.
-протокол http не так устроен? как не так? в рамках поставленного ТС вопроса - все реально. нет? обоснуйте, дайте пример который доказывает что вы правы. а то мужики то незнают)
1. Комет
2. Аякс
3. А вот здесь и закавыка. То, что хочет сделать ТС, не получится, если дело в запросе .
Поскольку я говорю "нельзя", а Вы говорите "можно", то пример с Вас. :)
...
Рейтинг: 0 / 0
(PHP) "долгий" вывод данных
    #37010135
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
r u-браузеру нельзя показывать страницу пока она недогрузилась? МОЖНО, это умеют все современные браузеры.Тут соглашусь. Сам неоднократно видел полстраницы http://www.sql.ru/forum/actualforum.aspx , когда много параллельных закачек идет на узком канале.
...
Рейтинг: 0 / 0
25 сообщений из 48, страница 1 из 2
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) "долгий" вывод данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]