Комментарии 7
Отсылка к 1brc понятна, но там все-таки был миллиард строк))
Много допущений. В реальной ситуации данные в ячейках могут быть разной длинны, и ширина колонки не будет фиксированной. Так же может быть задействован режим с отображением текста в несколько строк. И самое главное канвас не даёт возможности взаимодействовать с выводимой информацией, нельзя даже копировать текс.
Тут не так уж сложно сделать свой лейаутер с поддержкой переносов текста, таблиц и тд. Для взаимодействия с текстом придётся реализовать свою каретку/селекшен. Это уже чуть сложнее, но тоже выполнимо. Но вот подход из статьи с ререндером всего холста - это весьма не быстро. Куда оптимальнее сделать виртуальный рендеринг холстов фиксированного размера. Тогда при скроллинге браузер сможет бесплатно перемещать холсты без ререндера на каждом кадре.
Ох, уж эти фронтедеры. Решали 1brc, в итоге вместо миллиарда задачу уменьшили в 500 раз до пары миллионов, решали руками соседа, подключив внешний парсер и по итогу так и не решили главную задачу даже для тех миллионов.
"...может снизить скорость и плавность прокрутки, ухудшая тем самым пользовательский опыт."
"...создавая непрерывный и плавный пользовательский опыт."
Опыт делания скроллинг пейджа?
Может, чем топорно переводить англицизм, лучше написать "ухудшает UX"? Даже набирать меньше.
Как я отрендерил миллион строк в React