|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Здравствуйте, подскажите что за настройки отвечают на сервере в следующем вопросе. есть скрипт Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
text.doc - несколько слов. при обращении к нему страница грузится и выводит сразу все строчки. в локалхосте грузится по строчкам 1 строка, 2 строка, 3 строка, и т.д. в общем подгружается постепенно. что необходим в php.ini или апаче проделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2011, 20:37 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Что и где у Вас на локалхосте грузится построчно? Пока вся страница не загрузится, браузер ничего не отобразит. Уберите свой слип. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2011, 21:00 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
авторПока вся страница не загрузится, браузер ничего не отобразит. Уберите свой слип. Да почему же. Отобразит, только видимо что-то мешает, фаервол или еще чего. Там вроде какая-то настройка еще есть отвечающая за это. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2011, 21:22 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
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. что-то ещё было - сейчас не припомню ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2011, 21:51 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Гхм... такая байда конечно будет работать, но только в несколько тепличных условиях. Когда PHP установлен модулем и сжатие отключено и никаких кеширующих проксей... Мож еще какие условия надо соблюсти, не могу сказать точно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2011, 21:54 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Это, друзья, - фантастика. При таком раскладе, браузер ничего отображать не должен. Загрузка порциями - только через аякс. Типа, креатеЭлемент и аппендЧилд строчки в таблицу. Хотя, фиг его знает. Браузеры разные бывают. Здесь нужны эксперименты. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2011, 22:09 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
ShSergeЭто, друзья, - фантастика. При таком раскладе, браузер ничего отображать не должен. Загрузка порциями - только через аякс. эта "фантастика" называется управление буферизацией вывода)) с применением этого работали ранние чаты например. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 05:16 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
r uShSergeЭто, друзья, - фантастика. При таком раскладе, браузер ничего отображать не должен. Загрузка порциями - только через аякс. эта "фантастика" называется управление буферизацией вывода)) с применением этого работали ранние чаты например. ну так что необходимо настроить на сервере? vkle что мне следует изменить в настройках? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 09:08 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
vkle, или скажите как это объяснить хостеру что б он это сделал. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 09:35 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Kwintavkle, или скажите как это объяснить хостеру что б он это сделал.Да прямо так и объяснить. А потом пойти на VPS и настроить там как надо. Только есть ли смысл упираться именно в эту технологию? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 11:18 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
vkle, а самому такие настройки не прописать в хаттакесе? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 12:36 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Я так понимаю, что ShSerge имел ввиду то, что БРАУЗЕР не отображает таблицу до тех пор, пока не примет ее полностью и не произведет расчет всех ее ячеек. Хотя может нынче браузеры строки таблиц, в которых нет rowspan отображают построчно, а при поступлении новых строк перерисовывают всю таблицу вместе с предыдущими. Никогда не заморачивался таким вопросом... Kwintaчто необходим в php.ini или апаче проделать? 1. Проделать для чего? Ты описал, что в одном случае так, а в другом - так. Но чего ты хочешь - не сказал. 2. В php ты делаешь flush(). Но вообще-то после этого, твои несколько десятков новых символов могут попасть в кеш компрессора, если передача по http/1.1, да и без сжатия контент по-дефолту может передаваться блоками, например, по 4 Кб. А потом в пути проходит через десятки узлов, которые тоже могут изменить незначительно задержки между пакетами и пригнать их все в один момент. Так что, в общем случае, на приведенном тобой "скудном" примере эксперименты ставить затруднительно и "проблема" может быть как в твоей власти, так и не в твоей. Нужно хотя бы объем выводимого текста значительно увеличить и задержки секунд по 5, чтобы адекватно проанализировать разницу (но в таком случае, может обнаружиться, что ее и нет). Ну а для начала хотелось бы узнать, в чем собственно проблема и чего ты хочешь? Если хочешь при длительной работе скрипта выводить промежуточные результаты, то как-минимум убери таблицу из верстки и выводи просто div-ы или же вовсе открой <pre> и пихай в него строчки типа "текст<br />". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 13:19 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
http://95.58.85.141/ вот так мне надо. условие все такие же. скрипты и text.doc все тоже. только сервер по другому настроен. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 14:48 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Kwinta http://95.58.85.141/ вот так мне надо. условие все такие же. скрипты и text.doc все тоже. только сервер по другому настроен. Оно да, по частям выводит, хотя, чтобы всегда хорошо и правильно это происходило, не сделать. Заюзайте аякс что-ли, с клиентским таймером - это точно будет корректно работать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 15:05 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
авторОно да, по частям выводит ну, незнаю! у меня никакими кусочками не выводит. Долго ждёт и, вся таблица целиком. ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 15:38 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
vladgrigавторОно да, по частям выводит ну, незнаю! у меня никакими кусочками не выводит. Долго ждёт и, вся таблица целиком. ;) FF 5.0. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 15:55 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
vladgrig, вот и у меня сразу вся толпа вываливается, а по ссылке все норм то что мне необходимо, вот и хочу узнать что у это за настройки, хотя б знать что это дает такой вывод. что б правильно вопрос то задать или указать что мне необходимо) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 15:56 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
В Хроме тоже по частям. А Вот в ИЕ - точно. Сначала долго ждёт, а потом всё сразу выплёвывает. Т.е., что и требовалось доказать. Таким макаром хорошо не получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 15:58 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Kwinta, Короче, не тратьте время зря. Браузер не обязан вообще что-то выводить до тех пор, пока не построен ДОМ. А если где-то что-то и выводится, то это - фича, если не бага. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 16:02 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
1. На локальном хосте у тебя проц сколько ядер? 2. Без table пробовал то же самое? 3. Локальный хост - это что? IIS, Денвер, иои что еще? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 16:28 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
авторFF 5.0. proxy! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 16:44 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
ShSergeВот в ИЕ - точно. Сначала долго ждёт, а потом всё сразу выплёвывает.Это скорее особенность ИЕ - отображать таблицу только когда она будет загружена целиком. По крайней мере, в 6 версии было именно так, а после не тестил, честно говоря - не надо было почему то :-) Kwintaвот и хочу узнать что у это за настройки, хотя б знать что это дает такой вывод. что б правильно вопрос то задать или указать что мне необходимо) Так вроде уже раньше было говорено... Настройки - это как то немного ошибочно сказано. Скорее, можно говорить об архитектуре серверной части и канала от сервера до клиента. Чтоб такая схема заработала, нужно прямое (или непосредственное, если можно так выразиться) соединение между серверным ПО (в данном случае это PHP) и клиентом (браузером). Вряд ли без подробного описания существующей архитектуры можно посоветовать где конкретно нужно пнуть, а где плюнуть чтоб заработало. Смотрите по месту... В частности, должны быть убраны все фичи, которые обрабатывают отдаваемый скриптом контент целиком. Это может быть любой http-прокси (в том числе, nginx, за которым прячется Apache) - он может кешировать у себя страницу целиком. Это может быть gzip-сжатие - насколько знаю, оно работает только с целым файлом (хтмл-кодом) страницы. Разного рода CGI имеют свою буферизацию. Все эти компоненты следует исключить. Ну и ИЕ в качестве клиента тоже не годится для отображения таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.08.2011, 22:19 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Спасибо, за советы. vkle отдельный респект. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2011, 12:15 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Хостер сказал следующее. "Так как хостинг сделан на основе кластера - фронтенд принимает запрос- передает их обрабатывающим серверам , которые выполняют скрипт и по его завершению результат возвращают фронтенду". ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2011, 12:23 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Весьма распространенная конфигурация, что то вроде связки nginx + apache. Разумеется, хостер не будет ничего перекраивать и в лучшем случае для предложит ВПС для таких вот хотелок. Но администрировать его придется скорей всего самостоятельно. Возможно, хостер сделает первоначальную настройку за отдельную плату. Однако, Вы уже поняли, что одним только хостингом проблема не решится... Пожалуй, дополню свой предыдущий ответ. Такой вот "вывод кусочками" имеет полное право на существование в не слишком большой локальной сети организации, где все вопросы конфигурирования сервера и пути до конечного пользователя можно решить достаточно безболезненно. В глобальной сети Интернет вряд ли удастся добиться 100% надежности хотя бы даже из-за многообразия решений интернет-провайдеров по проксированию HTTP-трафика, клиентских файрволлов и настроек браузеров. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2011, 22:58 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Короче говоря, правильнее и проще будет дергать данные аяксом )) Но логику работы скрипта на сервере придется пересмотреть, т.к. один запрос, гадящий N порциями, меняется на N+1 запрос (1 обычный + N аяксовых приходов за порциями). ... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2011, 12:15 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
спрошу про похожую задачу, чтобы ветки не плодить: есть задача обмена короткими (до 200 байт) сообщениями юзер-то-юзер через общий вебсервер на пхп. Реализована в виде простейшего пхп-вебчата. Не устраивает суммарное время отклика (лаг) на передачу данных в 1 конец: юзер1-сессия1-чат на вебсервере-рефреш вебстраницы-сессия2-юзер2. Пир-то-пир не вариант (фаерволами всё закрыто, только хттп доступен). Подскажите, можно ли средствами пхп реализовать обмен между двумя клиентскими хттп-сессиями примерно так: - сессия1 делает долгий POST-запрос, секунд 30, передавая маленькими порциями нужные сообщения, вперемешку например с пробелами (чтобы не оборвалась сессия по таймауту); - сессия 2 аналогично делает долгий GET-запрос, тоже маленькими порциями (тоже фейковые пробелы например можно отдавать с сервера, если от сессии1 долго никаких данных не поступает); - пхп на вебсервере по получении очередной порции данных от сессии1 подсовывает их в буфер для отдачи в сессию2. - по прошествии 30 секунд сессии рвутся, и процесс повторяется заново. Или такой "пакетный" режим может не сработать на стороне вебсервера (хостинга провайдера)? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 10:45 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
помимо минимизации лага передачи пакета, хотелось бы таким образом минимизировать ещё и накладные расходы (трафик) на передачу данных - т.к. схема с чатом на каждое 100-200байт сообщение ещё и лишний http-заголовок порождает (ещё 200 байт, и часто не один, т.к. данные передаются нерегулярно). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 10:49 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Лучше это делать через вебсокеты. Давным давно делал чат на базе activemq, уже смутно помню. То ли через stomp как-то подключались клиенты к amq, то ли какой другой коннектор. Со стороны ПХП был скрипт, который управлял очередями (забирал сообщения от клиентов и передавал в каналы нужных клиентов, разруливал права доступа и т.п.) Хотя Java для этого лучше подходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 11:19 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
Хотя вот погуглил, есть и для пхп либы для организации работы вебсокетов, например https://github.com/varspool/Wrench ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 11:21 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
почитал про stomp - я так понимаю, что его не на каждом вебсервере провайдер даст поднять. К тому же, я правильно уловил, что ему нестандартный свободный порт на сервере нужен (на 80 не повесишь)? А штатные возможности движка пхп позволят отлавливать событие приёма очередной порции данных во входной буфер? Просто с пхп знаком весьма поверхностно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.05.2018, 11:27 |
|
Вывод кусочками
|
|||
---|---|---|---|
#18+
+ за вебсокеты после php, особенно с опытом в JS, ближе будет node.js чем java, к тому же есть реализации на php: https://github.com/ratchetphp/Ratchet ... |
|||
:
Нравится:
Не нравится:
|
|||
14.05.2018, 07:56 |
|
|
start [/forum/topic.php?all=1&fid=23&tid=1460293]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 176ms |
0 / 0 |