refresh cnucok 7bit.forum нacлeдuть
  РегистрацияПользователиАдминистраторы и модераторыПоискЧасто задаваемые вопросы На главную

7bit.forum » Техника » Обмен опытом » Буферизация вывода в ПхП » Привет, незнакомец [войти|регистрация]
Распечатать страницу
Понравилась тема? Поделитесь с друзьями!
Автор
Сообщение « Предыдущая тема | Следующая тема »
AssaultRifle
AssaultRifle - мужик
Лорд Гигабайт I-степени




Группа: VIP-Пользователи

Дата регистрации: 07.06.2005
Сообщения: 1671
Кто?: 7bit.штурмоствол

Репутация пользователя :
+1039 -687 = 352
Рейтинг сообщения:
+0 -0 = 0
балл   балл

МОИ ФОТКИ!


Буферизация вывода в ПхП На верх страницы

Вопрос к о-великому-Stan F.
Вобщем, есть у меня скрипт. Не вдаваясь в подробности, суть его в следующем: он берёт кучу инфы с различных сайтов, обрабатывает её и кидает в базу. Во время этого процесса скрипт выкидывает в браузер коротенькие сообщения об успешном добавлении блоков инфы в мускл-базу (сам скрипт,яспень,на ПхП). Однако время обработки инфы много больше времени формирования и отсылки данных сообщений. В этом случае ПхП ждёт, пока не наберётся достаточной величины блок инфы для отсылки в браузер, а потом БУХ - выкидывает сразу весь блок. В итоге происходит следующее: скрипт по-долгу не подаёт признаков жизни (а отслеживание процесса работы скрипта имеет критическое значение), во вторых, он периодически вообще зависает. Я где-то видел описание функции (не параметра php.ini, а именно функции ПхП), которая позволяет установить параметры/отменить буферизацию. Ничего про это не знаешь? Возможно, вопрос сформулирован весьма по-ламовски, однако суть, я думаю, ясна. Очень Надо. Заранее спасибо.

__________________
Si vis pacem, para bellum!

06.10.2005 23:31 AssaultRifle оффлайн Послать письмо AssaultRifle Сайт AssaultRifle Искать сообщения : AssaultRifle Добавить AssaultRifle в адресную книгу
McLay
McLay - мужик
Барон Килобайт I-степени




Группа: Пользователи

Дата регистрации: 18.11.2004
Сообщения: 189
Кто?: Студент, группа 2221

Репутация пользователя :
+36 -11 = 25
Рейтинг сообщения:
+1 -0 = 1
балл   балл


На верх страницы

в php.ini
output_buffering = Off

в скрипте
flush();

Можно без изменения php.ini, просто вызови ob_end_flush(); вначае скрипта.
Для ie еще нужно 256 байтов вывести, прежде чем он начнет что-нибудь показывать. Ну и для других браузеров ограничения есть, где-то по 8 байтов выводят, где-то только по строкам итп.

__________________
jazzy life

Сообщение отредактировано 1 раз(а), редактировал McLay , 07.10.2005 в 00:15.

07.10.2005 00:00 McLay оффлайн Искать сообщения : McLay Добавить McLay в адресную книгу
AssaultRifle
AssaultRifle - мужик
Лорд Гигабайт I-степени




Группа: VIP-Пользователи

Дата регистрации: 07.06.2005
Сообщения: 1671
Кто?: 7bit.штурмоствол

Репутация пользователя :
+1039 -687 = 352
Рейтинг сообщения:
+0 -0 = 0
балл   балл

МОИ ФОТКИ!

Автор темы Автор темы AssaultRifle


На верх страницы

цитата:
McLay пишет
ob_end_flush(); вначае скрипта.

чой-то не помогает!!!

__________________
Si vis pacem, para bellum!

08.10.2005 00:23 AssaultRifle оффлайн Послать письмо AssaultRifle Сайт AssaultRifle Искать сообщения : AssaultRifle Добавить AssaultRifle в адресную книгу
McLay
McLay - мужик
Барон Килобайт I-степени




Группа: Пользователи

Дата регистрации: 18.11.2004
Сообщения: 189
Кто?: Студент, группа 2221

Репутация пользователя :
+36 -11 = 25
Рейтинг сообщения:
+0 -0 = 0
балл   балл


На верх страницы

А flush() делаешь?

__________________
jazzy life

08.10.2005 05:37 McLay оффлайн Искать сообщения : McLay Добавить McLay в адресную книгу
Stan F
Stan F - мужик
Его Величество Администратор


Группа: Администраторы

Дата регистрации: 14.11.2003
Сообщения: 5148
Кто?: ФЮРЕР

Репутация пользователя :
+1897 -840 = 1057
Рейтинг сообщения:
+0 -0 = 0
балл   балл


На верх страницы

не очень вчитывался.. но буферизация не полностью управляема из скриптов на самом деле, так что может быть совсем так, как хочешь, и не получится.

дело в том, что буферы имеют минимальный размер и вроде квантуются, это зависит от ОС, и если этот объем не успевает заполниться, то может происходить разное.

очень советую почитать man php => output buffering.

ob_*()

а если тебе хочется событийно-управляемую модель, то скорее всего не выйдет. HTTP is stateless (c).
но это длинный разговор и уже немного на другую тему.

__________________

Последний рассвет
Тонкая нить и
Холодная сталь
Поможет забыть мне
Сотрёт глубину
Исчезнет печаль
Прольётся внутри
Моя мёртвая кровь
Развеет твой крик

08.10.2005 15:23 Stan F оффлайн Сайт Stan F Искать сообщения : Stan F Добавить Stan F в адресную книгу
CreateR
CreateR - мужик
Сэр Байт I-степени


Группа: Пользователи

Дата регистрации: 18.09.2004
Сообщения: 69
Кто?: Студент, группа 4707

Репутация пользователя :
+6 -2 = 4
Рейтинг сообщения:
+0 -0 = 0
балл   балл


На верх страницы

Читай про ob_start() в мануале, и далее по ссылкам оттуда

08.10.2005 18:29 CreateR оффлайн Искать сообщения : CreateR Добавить CreateR в адресную книгу
AssaultRifle
AssaultRifle - мужик
Лорд Гигабайт I-степени




Группа: VIP-Пользователи

Дата регистрации: 07.06.2005
Сообщения: 1671
Кто?: 7bit.штурмоствол

Репутация пользователя :
+1039 -687 = 352
Рейтинг сообщения:
+0 -0 = 0
балл   балл

МОИ ФОТКИ!

Автор темы Автор темы AssaultRifle


На верх страницы

Всем спасибо и грейт респект!

__________________
Si vis pacem, para bellum!

09.10.2005 21:26 AssaultRifle оффлайн Послать письмо AssaultRifle Сайт AssaultRifle Искать сообщения : AssaultRifle Добавить AssaultRifle в адресную книгу
Понравилась тема? Поделитесь с друзьями!
Чтобы отвечать на сообщения и создавать новые темы, необходимо зарегистрироваться. Присоединяйся к нам! :-)
Перейти:

Все вопросы, связанные с деятельностью сайта и форума решаются с руководителем проекта.

powered by [censored] forum
7bit.team © 2001-2016