DataTable — 1000 столбцов и более

Как вы знаете из предыдущей статьи, DataTable может вмещать в себя неограниченное количество строк. А как обстоят дела с колонками?

Пример выше показывает грид с 1000 столбцами. Да, это не миллион, но все же впечатляет, не правда ли?

Как это работает

DataTable использует ленивую стратегию отрисовки для столбцов columns, так же как и для рядов.Таким образом, если в гриде (DataTable) много столбцов, он будет обрабатывать только те, что действительно видны. Как только столбец исчезает из видимости, он удаляется из DOM, если же столбец нужно показать на экране — он будет добавлен в DOM. Ленивая стратегия отрисовки – это уникальная черта Webix. Насколько я знаю, это единственный javascript grid компонент, который предлагает такую функциональность.

Производительность

DataTable показывает высокую производительность во всех современных браузерах.

The less the better

По сравнению с другими грид компонентами, преимущество Webix DataTable очевидно. В то время как конкуренты теряют свои позиции при обработке больших объемов данных, DataTable показывает практически одинаковую скорость отрисовки с любым количеством столбцов.

The less the better

Тач устройства

Ленивая отрисовка работает как на десктопных, так и на тач устройствах. DataTable использует собственные скроллы (custom scrolls) для улучшения производительности. Однако они не так гладко работают, как нативные (браузерные) скроллы. Поэтому вам необходимо будет выбирать: либо грид с тысячами столбцов с не самым плавным скролом, либо у вас скролится все безупречно, но при этом количество столбцов в DataTable будет ограничено производительностью устройства.

Необходимо сказать, что даже в нативном режиме прокрутки DataTable способен отображать много столбцов за короткий промежуток времени.

The less the better

Динамическая загрузка

Технически, динамическую загрузку столбца можно реализовать аналогично динамической загрузке строки. Данные будут загружены в определенный столбец с сервера, только если этот столбец станет видимым. С точки зрения практического использования, это излишне, поэтому данная функциональность не реализована (хотя возможность есть).

Что это означает

Так же, как и с 1 млн. строк, не так часто разработчикам нужен грид с 1000 столбцами. Тем не менее, в бизнес-приложениях встречаются такие случаи, когда количество столбцов невозможно контролировать. Например, для бизнес-отчета, который включает в себя данные за десятилетний период с 2 параметрами для каждого месяца, грид будет состоять из 240 столбцов (10 * 12 * 2 = 240). Использование такого широкого DataTable не является лучшим решением с точки зрения пользовательского опыта, однако приятно знать, что даже в такой ситуации ваше приложение будет оставаться быстрым.