🧱 Стримящийся интерфейс должен быть стабильным, а не просто живым
Joas Pambou разбирает проблему, которая всё чаще появляется в интерфейсах с ИИ, логами, транскрибацией и любыми данными в реальном времени. Экран уже не ждёт полного ответа, а обновляется по ходу генерации. Вроде бы удобно, но на практике такой интерфейс легко начинает мешать: тянет пользователя вниз, двигает элементы под рукой, слишком часто перерисовывает DOM и ломает нормальное чтение.
Самое полезное здесь в том, что статья смотрит на стриминг не как на визуальный эффект, а как на набор конкретных UX- и фронтенд-рисков. Если пользователь прокрутил вверх, интерфейс не должен насильно возвращать его к последней строке. Если текст растёт, не нужно пересобирать весь блок на каждый символ. Если данные приходят быстрее, чем браузер рисует кадры, их лучше буферизовать и обновлять экран пачками. Иначе «живой» интерфейс быстро превращается в дергающийся, непредсказуемый и утомительный.
Внутри: – Почему стримящиеся интерфейсы сложнее, чем кажутся на первый взгляд; – Как автоскролл может начать бороться с пользователем за внимание; – Почему новые строки, токены и блоки создают сдвиги макета; – Зачем останавливать автоскролл, если пользователь сам ушёл вверх; – Почему не стоит пересобирать весь DOM на каждый новый символ; – Как буферизация через requestAnimationFrame снижает лишние перерисовки; – Что общего у ИИ-чата, логов, транскрибации и дашбордов с метриками; – Почему стабильность интерфейса это не только производительность, но и доступность.
———
💻 Курс по поиску работы 😍 Про дизайн 🔥 Вакансии дизайнерам 🎨 Референсы
В этом посте были ссылки, но мы их удалили по правилам Сетки
· 17.06
Боль знакомая. Делали стриминг ответов LLM в чат и первое что всплыло: автоскролл дерётся с пользователем. Он листает вверх читать, а его дёргает вниз каждым новым токеном. Решили правилом: автоскролл только если юзер у нижнего края, иначе плашка «новые сообщения». И не перерисовывать весь список на каждый токен, а дописывать в последний узел. На длинных ответах FPS перестал проседать.
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён