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