Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
суть задачи - вывод данных из БД скрипт, который запрашивает данные из БД, работает долго - несколько минут пока все данные из БД скрипт не получит - ничего пользователю не отображается (((( как организовать скрип/вывод данных, чтобы пользователю отобразилась страница (верх или верх и низ страницы), а по мере получения данных - данные (в центре или хотя бы дописывались вниз страницы) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 19:19 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
Партиями в цикле. Боюсь спросить сколько там данных что они долго отображаются? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 19:22 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
it-nowa, Никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 21:29 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
it-nowa, с помошью пхп генерить js файл вида: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2010, 21:51 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
В данном случае - никак. Пхп кешируемый, если это можно так назвать. То есть пока весь пхп не выполнится - ничего отдано не будет. Единственный выход - разбивать обработку данных из базы на маленькие кусочки и аяксом запрашивать поочеередно все этапы вычисления. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 15:18 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
shmaltorhbooksВ данном случае - никак. Пхп кешируемый, если это можно так назвать. То есть пока весь пхп не выполнится - ничего отдано не будет. Единственный выход - разбивать обработку данных из базы на маленькие кусочки и аяксом запрашивать поочеередно все этапы вычисления. Откройте для себя виртуоз плеск контейнер... тьфу не то. Откройте для себя функцию flush() ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 15:26 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
it-nowa, Открою глаза Топикстартеру и другим говорящим что php этого не умеет. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 16:19 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
Это не пхп не умеет, это протокол http не умеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 16:49 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
r uit-nowa, Открою глаза Топикстартеру и другим говорящим что php этого не умеет. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ничего не доказывающий пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 19:52 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгенийничего не доказывающий пример Скрипт раз в секунду отправляет строку "дата". Проверял - работает. То что можно отправлять данные до того как скрипт закончит выполняться - данный пример показал. Евгений, а вы что имели в виду? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 20:31 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
Дегтярев Евгенийничего не доказывающий пример он не доказывает что можно выдавать информацию браузеру порциями?)) ТС именно об этом спрашивал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 20:31 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
ИМХО несколько хлипка эта отдача порциями. В том смысле, что сильно зависит от настроек сервера. Нарывался на проблему, когда всё нормально работало на тестовом сервере, где PHP установлен модулем Апача, но перестало работать на хостинге, где PHP установлен как CGI и включено gzip-сжатие по дефолту. Полагаю, что в данном случае более удобен способ вывода части длинной страницы, когда сервер отдаёт по запросу клиента именно тот фрагмент, который видит пользователь (ну, прокрутил он страницу к середине). Кажется, видел подобное решение на каком-то гуглёвом сервисе. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 20:53 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
vkle, Ну нельзя и нельзя, хоть ты тресни. В классическом варианте, понятное дело. Даже браузер не будет ничего отображать, пока польностью всё не придёт. Это не на пхп или ещё чего-то на сервере делается. Я же говорю, протокол хттп так устроен. В гугле сделано подгрузкой по технологии JSONP, просьба не путать с JSON - две большие разницы. JSONP - кроссдоменный аякс, если кому интересно. Ну да, только аяксом это возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 22:17 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
ShSerge, а че тебе вариант 9907807 не устроил? если он не заработает, то нужно будет его обрамить тегами <script> и все - проверено, все работает. Браузер как догрзит блок скрипта его выполняет, потом как загрузит второй - выполнит его итд. Единствено получим таблицу, которая генерироваться вся будет через JS что не есть айс, но тем не менее проблема решена и довольно просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 23:11 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
Ренат, Креате элемент и всё такое - правильно. Вот только не понял о чём ты говоришь. Этот яваскрипт заработает только тогда, когда целиком и полностью отработает твоя пхп-программа, а смысл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 23:36 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
Ну сам проверь, если не веришь. То, что ты операторы пхп в страницу вставил, ничего не решает. Сервер с пхп сначала обработают страницу с операторами (я это и назвал пхп-программой), а потом залпом это всё выплёвывают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 23:40 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
ShSergeРенат, Креате элемент и всё такое - правильно. Вот только не понял о чём ты говоришь. Этот яваскрипт заработает только тогда, когда целиком и полностью отработает твоя пхп-программа, а смысл? попробуй выполнить код: заметь, в поле "q" цыфры меняться раз в секунду, а не один раз через 10 секунд. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 23:44 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
Ренат, Завтра посмотрю. Сегодня уже лень даже на код смотреть. Может ты чего-то изобрёл. Хотя, покамест я остаюсь при своём мнении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2010, 23:48 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
ShSergeНу нельзя и нельзя, хоть ты тресни. Даже браузер не будет ничего отображать, пока польностью всё не придёт. Я же говорю, протокол хттп так устроен. что именно нельзя? -нельзя отдавать данные порциями в рамках одного соединения? - МОЖНО -браузеру нельзя показывать страницу пока она недогрузилась? МОЖНО, это умеют все современные браузеры. -протокол http не так устроен? как не так? в рамках поставленного ТС вопроса - все реально. нет? обоснуйте, дайте пример который доказывает что вы правы. а то мужики то незнают) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 11:58 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
it-nowa, Оптимизируйте sql запрос, почитайте что такое index. уверен на 90% это то что Вам поможет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 13:43 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
SmeL_mdit-nowa, Оптимизируйте sql запрос, почитайте что такое index. уверен на 90% это то что Вам поможет it-nowa, Кстати, чем вызвано такое большое время выполнения скрипта? - слишком много данных высылается (как реализовать уже написали) - или сам запрос долго работает? (пока мускул не обработает запрос - он ничего не вернет, следовательно тут можно ждать только окончание выполнения. Как посоветовал Смелмд, раставте по нормальному индексы.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.12.2010, 14:31 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
Ренат, SmeL_md, запрос сложный, обрабатывает аналитику, оптимизация самого запроса ведется, но резкого ускорения "в разы" на базе в несколько гигов не предвидится :) вывести надо всего около 10-15 строк (в данный момент), но при изменении отчетности вывести придется 100+ строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 20:11 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
r u-нельзя отдавать данные порциями в рамках одного соединения? - МОЖНО -браузеру нельзя показывать страницу пока она недогрузилась? МОЖНО, это умеют все современные браузеры. -протокол http не так устроен? как не так? в рамках поставленного ТС вопроса - все реально. нет? обоснуйте, дайте пример который доказывает что вы правы. а то мужики то незнают) 1. Комет 2. Аякс 3. А вот здесь и закавыка. То, что хочет сделать ТС, не получится, если дело в запросе . Поскольку я говорю "нельзя", а Вы говорите "можно", то пример с Вас. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 20:22 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
r u-браузеру нельзя показывать страницу пока она недогрузилась? МОЖНО, это умеют все современные браузеры.Тут соглашусь. Сам неоднократно видел полстраницы http://www.sql.ru/forum/actualforum.aspx , когда много параллельных закачек идет на узком канале. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 20:26 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
miksoft, Дело точно не в запросе. Пока он не выполнится, никаких данных не будет. Разве не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 20:31 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
ShSergemiksoft, Дело точно не в запросе. Пока он не выполнится, никаких данных не будет. Разве не так? База какая? Если оракл - то тут подсказывают юзать FIRST ROWS , чтобы по мере выполнения запроса данные потехоньку получать. Жал в мускуле такой вещи нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 20:48 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
Ренат, А если база не Оракл, то подсказывают перейти на Оракл... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 20:59 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
запросов несколько, отрабатывают по очереди, но пока не отработают все (т.е. пока не отработает весь скрипт) - пользователю ничего не отображается нужен способ - лучше в примером - как отдавать пользователю данные по мере выполнения запросов, а не по завершению всего скрипта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 21:34 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
СУБД может меняться, это, полагаю, не принципиально надо отдавать пользователю данные по мере выполнения каждого отдельного запроса, а не всего скрипта целиком ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 21:40 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
it-nowaзапросов несколько, отрабатывают по очереди, но пока не отработают все (т.е. пока не отработает весь скрипт) - пользователю ничего не отображается нужен способ - лучше в примером - как отдавать пользователю данные по мере выполнения запросов, а не по завершению всего скрипта Вот именно. Я говорю, что нельзя. Некоторые возражают, ну-ну. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 22:06 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
ShSerge, структура скрипта запрос1 вывести данные запроса1 запрос2 вывести данные запроса2 ... запросN вывести данные запросаN пользователь видит результат только тогда, когда весь скрипт отработает, все N запросов, это неудобно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 22:18 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
it-nowa, Загружаете страницу, потом аяксом выполняете свои запросы. Как-то так. Это вполне возможно, но только не в процессе формирования самой страницы, а уже потом, когда она загрузилась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 22:31 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
ShSerge, хорошо б пример рабочий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 22:51 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
it-nowa, я вас не понимаю, вам уже не только дали все варианты ответов - но и даже примеры кода привели, что вы еще просите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 22:58 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
it-nowa, Назови базу. Покажу структуру объектов и индексов, с которыми работает скрипт. Покажи сам скрипт. Укажи места, где по твоему мнению происходят значительные потери времения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2010, 23:14 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
ShSerge1. Комет 2. Аякс 3. А вот здесь и закавыка. То, что хочет сделать ТС, не получится, если дело в запросе . Поскольку я говорю "нельзя", а Вы говорите "можно", то пример с Вас. :) 1) ну если вы знаете только слово комет то пусть он и будет. а вы в курсе что комет технология реализуется многими механизмами. в том числе и бесконечным запросом. это когда на запрос браузера скрипт отдает данные по чуть чуть не закрывая соединение? а ранние чаты как работали? если вы этого не знаете - то хотябы не говорите что это не возможно. 2) да это работает уже черт знает сколько лет, когда и аякса еще не было)) 3) у него несколько запросов, после каждого из них можно выводить данные. Пример? я уже давно его привел . этот код не работает? или там используется много переподключений? почему этот вариант не подойдет топикстартеру? объясните нормально, без смены темы и голословных утверждений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 08:58 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
miksoftr u-браузеру нельзя показывать страницу пока она недогрузилась? МОЖНО, это умеют все современные браузеры.Тут соглашусь. Сам неоднократно видел полстраницы http://www.sql.ru/forum/actualforum.aspx , когда много параллельных закачек идет на узком канале. вроде как, таблицы с border-collapse: collapse не рендерятся, пока таблица не будет загружена до конца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 09:38 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
r uПример? я уже давно его привел . этот код не работает? или там используется много переподключений? почему этот вариант не подойдет топикстартеру? Офтоп детектед потому что. Вы вопрос читали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 10:07 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
ShSergeОфтоп детектед потому что. Вы вопрос читали? ну что за детсад. мне что носом тыкать? ладно. внимательно читаем что хочет ТС: it-nowaкак организовать скрип/вывод данных, чтобы пользователю отобразилась страница (верх или верх и низ страницы), а по мере получения данных - данные (в центре или хотя бы дописывались вниз страницы) Действительно "оффтоп детектед". вы то похоже вопрос ТСа даже не прочитали)) и это реально сделать - можно дописывать их вниз по мере получения, с пом. включения буферизации вывода на сервере - можно дописывать их в центр или вообще куда удобно с пом JS (с этим вы сами уже согласились). и не нужно пытаться теперь вернуться к вопросу ТС, вы уже сами столько написали в этой теме про то что протокол не позволяет, что браузер не отображает.... так в чем спор? вы до сих пор утверждаете что это невозможно? ну возможно же. есть пути решения. остается только выбрать подходящий. и примеры кода уже были... спорить дальше не вижу смысла, ибо я не вижу конкретики от вас, лишь пустые и общие слова ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 10:39 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
it-nowa, или у вас база данных на пару гигов (судя по длительной генерации) или проблема с архитектурой (больше чем уверен) не надо DDL, просто покажите один из запросов... в любом случае вам не нужно искать альтернативу вывода данных, модифицируйте то что уже есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 11:10 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
it-nowaShSerge, хорошо б пример рабочий comet там тебе примеры всех возможных реализаций того что ты хочешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 15:41 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
schizophrenic, о базе уже писал, большая тынц задача стоит - организовать вэб-интерфейс для некоторых функций системы (в дополнение к существующему "толстому" клиенту) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2010, 19:15 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
как организовать что-то похожее на http://arxiv.org/list/astro-ph/04?skip=0&show=2000 данные выводятся по мере поиска в базе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2011, 18:34 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
поскольку этот топ вылезает первыйм в гугле - некрофильну ) Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. так работает везде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2013, 16:48 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
sweater, некрофильну тоже. sweatersleep(2); - много чегой-то, 2 сек.. У меня без слипа не делает немедленной отправки, но вот как бы эти 2сек уменьшить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.07.2015, 14:51 |
|
||
|
(PHP) "долгий" вывод данных
|
|||
|---|---|---|---|
|
#18+
похоже все так увлеклись темой php что совершенно забыли о сути. ошибка которая возникает в подобных ситуациях не зря называеть вместо "error:flush is not used", - connection timeout! данные передаються пхп скриптом - который сам может буферизировать по различным причинам в выходной поток, который сам может создавать задержки(скрипт много выдал, упало на винчестер за неимением памяти, винчестер жутко тормозит) - пхп может и пару гигабайт эхом выдать за секунду, но влаш ни влаш...даные в сеть не уйдут так быстро, при отключеных буферизациях, вопрос на засыпку где окажуться 2 гига? в стдаут, а если оперативки всего гиг, то где физически? из выходного потока идут тем или иным путём к веб серверу - где тоже могут возникать задержки, веб сервер сам может буферизировать и тоже по разным причинам... да у пхп есть команда flush() но её суть - не отправить данные, а дождаться очистки выходного потока - уход всех данных от выходного потока пхп - а) это не тоже самое что получение всех этих данных браузером б) а тут вопрос - в буфере было 40мегабайт, сеть медленная настолко что для передачи ей надо час, нигде больше задержки нету.... вопрос что будет делать скрипт этот час? - спать. и ввиду последнего, врядли для задачи получение данных например 10мегабайт за 2 минуты, стоит решать вариантом, получить 100кб, поспать пока они уйдут, получить другие 100кб... наверно вернее будет, получать данные для вывода так быстро как это возможно на сервере, и самому ложить аккуратно в тот или иной поток(файл например) , и отдельно делать вывод... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2015, 05:17 |
|
||
|
|

start [/forum/topic.php?all=1&fid=23&tid=1461659]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 390ms |

| 0 / 0 |
