crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> PHP + Yii2 + output_buffering
Гость_ГостьГость_*
сообщение 23.5.2018, 17:36
Сообщение #1





Гости








    


Привет всем.
Пытаюсь заюзать Yii2, но что-то безуспешно.
Суть. При открытии страницы, отрабатывается JS, который ajax'ом вытягивает данные из СУБД. И вот, когда количество разом выгружаемых данных перевалило за 4096 знаков, данные из БД перестали приходить. Долго гуглил и не нагуглил. Думал, что проблема в БД, JS, где угодно, но не в php. Оказалось, в php есть такой параметр output_buffering который разработчики настоятельно рекомендуют не трогать по причине работает-не_лезь. Вот и думаю. Сейчас около 37 объектов, по которым выгружается 4102 байта инфы. Объектов планируется около 2200, т.е. 256Кб было бы шикарно, а лучше 512КБ, но это все рискует сдохнуть.

Как быть?

Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 24.5.2018, 8:01
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


а СУБД то какая ? Может, дело таки в ней

и как это - "данные из БД перестали приходить"
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_Гость_*
сообщение 24.5.2018, 18:07
Сообщение #3





Гости








    


Цитата(Алексей1153 @ 24.5.2018, 8:01) *
и как это - "данные из БД перестали приходить"

echo перестал возвращать.
Я же говорю, что в php.ini параметр output_buffering выставлен в 4096 по дефолту и ппц как не рекомендуется его трогать. Т.е. суть вот какая.
Страница отправляет на ajax-документ данные, по данным происходит выборка, данные из БД препарируются в json_encode и как дело доходит до echo - если размер до 4096 - все норм. Больше - тишина. Дока к пхп говорит, что данные пилиться должны, кратно 4096. Пришло у тебя 4102, значит передача пойдет в 2 этапа. Сначала 4096, затем еще 6 байт. Тут такого не происходит, мне система просто пишет в лог строку в которой ошибка, а в консоль.лог падает инфа, что url корявая. Как заставить её ходить в 2 блока, я хз.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 25.5.2018, 9:39
Сообщение #4


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


ИМХО лучше за раз не брать 4096 строк из БД, тем более пользователь их сразу все не будет читать.
Сделай отлоденную загрузку, тоесть загружаешь 100 строк, посльзователь доходит до просмотра 101, тогда подгружаются следующие 100 и так далее...

Этим убиваешь сразу трех зайцев:
1. решается проблема с загрузкой кучи строк из БД
2. снижается нагрузка на сервак и БД
3. увеличивается скорость загрузки страницы на стороне пользователя
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 8:49