powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вывод кусочками
32 сообщений из 32, показаны все 2 страниц
Вывод кусочками
    #37391723
Kwinta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, подскажите что за настройки отвечают на сервере в следующем вопросе.
есть скрипт
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<?php
    $n= 0 ;

    $lines =  file  ( "text.doc" ) ;

     echo  '<table border="1"><tr><th>N</th><th>TEXT</th></tr>' ;
     foreach  ( $lines  as  $line ) {
        $n++;
         echo  "<tr><td>$n</td><td>$line</td></tr>" ;
         flush () ;
         sleep ( 1 );
 }

 echo  '</table>';
?>

text.doc - несколько слов.
при обращении к нему страница грузится и выводит сразу все строчки. в локалхосте грузится по строчкам 1 строка, 2 строка, 3 строка, и т.д. в общем подгружается постепенно. что необходим в php.ini или апаче проделать?
...
Рейтинг: 0 / 0
Вывод кусочками
    #37391736
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что и где у Вас на локалхосте грузится построчно?
Пока вся страница не загрузится, браузер ничего не отобразит. Уберите свой слип.
...
Рейтинг: 0 / 0
Вывод кусочками
    #37391752
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПока вся страница не загрузится, браузер ничего не отобразит. Уберите свой слип.
Да почему же.
Отобразит, только видимо что-то мешает, фаервол или еще чего. Там вроде какая-то настройка еще есть отвечающая за это.
...
Рейтинг: 0 / 0
Вывод кусочками
    #37391771
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
flush
автор.....
Even the browser may buffer its input before displaying it. Netscape, for example, buffers text until it receives an end-of-line or the beginning of a tag, and it won't render tables until the </table> tag of the outermost table is seen.

Some versions of Microsoft Internet Explorer will only start to display the page after they have received 256 bytes of output, so you may need to send extra whitespace before flushing to get those browsers to display the page.

1. попробуй не в table а просто echo $line . '<br/>';
2. попробуй подгрузить 256 bytes of output (скажем пробелами) перед выводом.
3. что-то ещё было - сейчас не припомню ;)
...
Рейтинг: 0 / 0
Вывод кусочками
    #37391777
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гхм... такая байда конечно будет работать, но только в несколько тепличных условиях. Когда PHP установлен модулем и сжатие отключено и никаких кеширующих проксей... Мож еще какие условия надо соблюсти, не могу сказать точно.
...
Рейтинг: 0 / 0
Вывод кусочками
    #37391782
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это, друзья, - фантастика. При таком раскладе, браузер ничего отображать не должен. Загрузка порциями - только через аякс. Типа, креатеЭлемент и аппендЧилд строчки в таблицу. Хотя, фиг его знает. Браузеры разные бывают. Здесь нужны эксперименты.
...
Рейтинг: 0 / 0
Вывод кусочками
    #37391926
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeЭто, друзья, - фантастика. При таком раскладе, браузер ничего отображать не должен. Загрузка порциями - только через аякс.
эта "фантастика" называется управление буферизацией вывода)) с применением этого работали ранние чаты например.
...
Рейтинг: 0 / 0
Вывод кусочками
    #37392028
Kwinta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
r uShSergeЭто, друзья, - фантастика. При таком раскладе, браузер ничего отображать не должен. Загрузка порциями - только через аякс.
эта "фантастика" называется управление буферизацией вывода)) с применением этого работали ранние чаты например.
ну так что необходимо настроить на сервере?
vkle что мне следует изменить в настройках?
...
Рейтинг: 0 / 0
Вывод кусочками
    #37392064
Kwinta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle,
или скажите как это объяснить хостеру что б он это сделал.
...
Рейтинг: 0 / 0
Вывод кусочками
    #37392268
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kwintavkle,
или скажите как это объяснить хостеру что б он это сделал.Да прямо так и объяснить. А потом пойти на VPS и настроить там как надо. Только есть ли смысл упираться именно в эту технологию?
...
Рейтинг: 0 / 0
Вывод кусочками
    #37392457
Kwinta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle,
а самому такие настройки не прописать в хаттакесе?
...
Рейтинг: 0 / 0
Вывод кусочками
    #37392561
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понимаю, что ShSerge имел ввиду то, что БРАУЗЕР не отображает таблицу до тех пор, пока не примет ее полностью и не произведет расчет всех ее ячеек. Хотя может нынче браузеры строки таблиц, в которых нет rowspan отображают построчно, а при поступлении новых строк перерисовывают всю таблицу вместе с предыдущими. Никогда не заморачивался таким вопросом...

Kwintaчто необходим в php.ini или апаче проделать?
1. Проделать для чего? Ты описал, что в одном случае так, а в другом - так. Но чего ты хочешь - не сказал.

2. В php ты делаешь flush(). Но вообще-то после этого, твои несколько десятков новых символов могут попасть в кеш компрессора, если передача по http/1.1, да и без сжатия контент по-дефолту может передаваться блоками, например, по 4 Кб. А потом в пути проходит через десятки узлов, которые тоже могут изменить незначительно задержки между пакетами и пригнать их все в один момент.

Так что, в общем случае, на приведенном тобой "скудном" примере эксперименты ставить затруднительно и "проблема" может быть как в твоей власти, так и не в твоей. Нужно хотя бы объем выводимого текста значительно увеличить и задержки секунд по 5, чтобы адекватно проанализировать разницу (но в таком случае, может обнаружиться, что ее и нет).

Ну а для начала хотелось бы узнать, в чем собственно проблема и чего ты хочешь?
Если хочешь при длительной работе скрипта выводить промежуточные результаты, то как-минимум убери таблицу из верстки и выводи просто div-ы или же вовсе открой <pre> и пихай в него строчки типа "текст<br />".
...
Рейтинг: 0 / 0
Вывод кусочками
    #37392846
Kwinta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://95.58.85.141/
вот так мне надо. условие все такие же. скрипты и text.doc все тоже. только сервер по другому настроен.
...
Рейтинг: 0 / 0
Вывод кусочками
    #37392906
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kwinta http://95.58.85.141/
вот так мне надо. условие все такие же. скрипты и text.doc все тоже. только сервер по другому настроен.
Оно да, по частям выводит, хотя, чтобы всегда хорошо и правильно это происходило, не сделать.
Заюзайте аякс что-ли, с клиентским таймером - это точно будет корректно работать.
...
Рейтинг: 0 / 0
Вывод кусочками
    #37393016
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОно да, по частям выводит

ну, незнаю! у меня никакими кусочками не выводит. Долго ждёт и, вся таблица целиком. ;)
...
Рейтинг: 0 / 0
Вывод кусочками
    #37393065
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vladgrigавторОно да, по частям выводит

ну, незнаю! у меня никакими кусочками не выводит. Долго ждёт и, вся таблица целиком. ;)
FF 5.0.
...
Рейтинг: 0 / 0
Вывод кусочками
    #37393067
Kwinta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladgrig,
вот и у меня сразу вся толпа вываливается, а по ссылке все норм то что мне необходимо, вот и хочу узнать что у это за настройки, хотя б знать что это дает такой вывод. что б правильно вопрос то задать или указать что мне необходимо)
...
Рейтинг: 0 / 0
Вывод кусочками
    #37393074
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Хроме тоже по частям. А Вот в ИЕ - точно. Сначала долго ждёт, а потом всё сразу выплёвывает.
Т.е., что и требовалось доказать. Таким макаром хорошо не получится.
...
Рейтинг: 0 / 0
Вывод кусочками
    #37393087
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kwinta,

Короче, не тратьте время зря. Браузер не обязан вообще что-то выводить до тех пор, пока не построен ДОМ. А если где-то что-то и выводится, то это - фича, если не бага.
...
Рейтинг: 0 / 0
Вывод кусочками
    #37393188
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. На локальном хосте у тебя проц сколько ядер?
2. Без table пробовал то же самое?
3. Локальный хост - это что? IIS, Денвер, иои что еще?
...
Рейтинг: 0 / 0
Вывод кусочками
    #37393233
Фотография vladgrig
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторFF 5.0.
proxy!
...
Рейтинг: 0 / 0
Вывод кусочками
    #37393585
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeВот в ИЕ - точно. Сначала долго ждёт, а потом всё сразу выплёвывает.Это скорее особенность ИЕ - отображать таблицу только когда она будет загружена целиком. По крайней мере, в 6 версии было именно так, а после не тестил, честно говоря - не надо было почему то :-)

Kwintaвот и хочу узнать что у это за настройки, хотя б знать что это дает такой вывод. что б правильно вопрос то задать или указать что мне необходимо) Так вроде уже раньше было говорено... Настройки - это как то немного ошибочно сказано. Скорее, можно говорить об архитектуре серверной части и канала от сервера до клиента. Чтоб такая схема заработала, нужно прямое (или непосредственное, если можно так выразиться) соединение между серверным ПО (в данном случае это PHP) и клиентом (браузером). Вряд ли без подробного описания существующей архитектуры можно посоветовать где конкретно нужно пнуть, а где плюнуть чтоб заработало. Смотрите по месту... В частности, должны быть убраны все фичи, которые обрабатывают отдаваемый скриптом контент целиком. Это может быть любой http-прокси (в том числе, nginx, за которым прячется Apache) - он может кешировать у себя страницу целиком. Это может быть gzip-сжатие - насколько знаю, оно работает только с целым файлом (хтмл-кодом) страницы. Разного рода CGI имеют свою буферизацию. Все эти компоненты следует исключить. Ну и ИЕ в качестве клиента тоже не годится для отображения таблицы.
...
Рейтинг: 0 / 0
Вывод кусочками
    #37393864
Kwinta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, за советы.
vkle отдельный респект.
...
Рейтинг: 0 / 0
Вывод кусочками
    #37393871
Kwinta
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хостер сказал следующее.
"Так как хостинг сделан на основе кластера - фронтенд принимает запрос- передает их обрабатывающим серверам , которые выполняют скрипт и по его завершению результат возвращают фронтенду".
...
Рейтинг: 0 / 0
Вывод кусочками
    #37394269
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весьма распространенная конфигурация, что то вроде связки nginx + apache. Разумеется, хостер не будет ничего перекраивать и в лучшем случае для предложит ВПС для таких вот хотелок. Но администрировать его придется скорей всего самостоятельно. Возможно, хостер сделает первоначальную настройку за отдельную плату. Однако, Вы уже поняли, что одним только хостингом проблема не решится...

Пожалуй, дополню свой предыдущий ответ. Такой вот "вывод кусочками" имеет полное право на существование в не слишком большой локальной сети организации, где все вопросы конфигурирования сервера и пути до конечного пользователя можно решить достаточно безболезненно. В глобальной сети Интернет вряд ли удастся добиться 100% надежности хотя бы даже из-за многообразия решений интернет-провайдеров по проксированию HTTP-трафика, клиентских файрволлов и настроек браузеров.
...
Рейтинг: 0 / 0
Вывод кусочками
    #37394463
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче говоря, правильнее и проще будет дергать данные аяксом )) Но логику работы скрипта на сервере придется пересмотреть, т.к. один запрос, гадящий N порциями, меняется на N+1 запрос (1 обычный + N аяксовых приходов за порциями).
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Вывод кусочками
    #39643781
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спрошу про похожую задачу, чтобы ветки не плодить:
есть задача обмена короткими (до 200 байт) сообщениями юзер-то-юзер через общий вебсервер на пхп. Реализована в виде простейшего пхп-вебчата. Не устраивает суммарное время отклика (лаг) на передачу данных в 1 конец: юзер1-сессия1-чат на вебсервере-рефреш вебстраницы-сессия2-юзер2. Пир-то-пир не вариант (фаерволами всё закрыто, только хттп доступен).

Подскажите, можно ли средствами пхп реализовать обмен между двумя клиентскими хттп-сессиями примерно так:
- сессия1 делает долгий POST-запрос, секунд 30, передавая маленькими порциями нужные сообщения, вперемешку например с пробелами (чтобы не оборвалась сессия по таймауту);
- сессия 2 аналогично делает долгий GET-запрос, тоже маленькими порциями (тоже фейковые пробелы например можно отдавать с сервера, если от сессии1 долго никаких данных не поступает);
- пхп на вебсервере по получении очередной порции данных от сессии1 подсовывает их в буфер для отдачи в сессию2.
- по прошествии 30 секунд сессии рвутся, и процесс повторяется заново.

Или такой "пакетный" режим может не сработать на стороне вебсервера (хостинга провайдера)?
...
Рейтинг: 0 / 0
Вывод кусочками
    #39643784
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помимо минимизации лага передачи пакета, хотелось бы таким образом минимизировать ещё и накладные расходы (трафик) на передачу данных - т.к. схема с чатом на каждое 100-200байт сообщение ещё и лишний http-заголовок порождает (ещё 200 байт, и часто не один, т.к. данные передаются нерегулярно).
...
Рейтинг: 0 / 0
Вывод кусочками
    #39643789
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше это делать через вебсокеты.
Давным давно делал чат на базе activemq, уже смутно помню. То ли через stomp как-то подключались клиенты к amq, то ли какой другой коннектор. Со стороны ПХП был скрипт, который управлял очередями (забирал сообщения от клиентов и передавал в каналы нужных клиентов, разруливал права доступа и т.п.) Хотя Java для этого лучше подходит.
...
Рейтинг: 0 / 0
Вывод кусочками
    #39643790
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя вот погуглил, есть и для пхп либы для организации работы вебсокетов, например https://github.com/varspool/Wrench
...
Рейтинг: 0 / 0
Вывод кусочками
    #39643794
ldfanate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почитал про stomp - я так понимаю, что его не на каждом вебсервере провайдер даст поднять. К тому же, я правильно уловил, что ему нестандартный свободный порт на сервере нужен (на 80 не повесишь)?
А штатные возможности движка пхп позволят отлавливать событие приёма очередной порции данных во входной буфер? Просто с пхп знаком весьма поверхностно.
...
Рейтинг: 0 / 0
Вывод кусочками
    #39644123
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ за вебсокеты
после php, особенно с опытом в JS, ближе будет node.js чем java, к тому же есть реализации на php: https://github.com/ratchetphp/Ratchet
...
Рейтинг: 0 / 0
32 сообщений из 32, показаны все 2 страниц
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вывод кусочками
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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