Как вы знаете из предыдущей статьи, DataTable может вмещать в себя неограниченное количество строк. А как обстоят дела с колонками?
Пример выше показывает грид с 1000 столбцами. Да, это не миллион, но все же впечатляет, не правда ли?
Как это работает
DataTable использует ленивую стратегию отрисовки для столбцов columns, так же как и для рядов.Таким образом, если в гриде (DataTable) много столбцов, он будет обрабатывать только те, что действительно видны. Как только столбец исчезает из видимости, он удаляется из DOM, если же столбец нужно показать на экране — он будет добавлен в DOM. Ленивая стратегия отрисовки – это уникальная черта Webix. Насколько я знаю, это единственный javascript grid компонент, который предлагает такую функциональность.
Производительность
DataTable показывает высокую производительность во всех современных браузерах.
По сравнению с другими грид компонентами, преимущество Webix DataTable очевидно. В то время как конкуренты теряют свои позиции при обработке больших объемов данных, DataTable показывает практически одинаковую скорость отрисовки с любым количеством столбцов.
Тач устройства
Ленивая отрисовка работает как на десктопных, так и на тач устройствах. DataTable использует собственные скроллы (custom scrolls) для улучшения производительности. Однако они не так гладко работают, как нативные (браузерные) скроллы. Поэтому вам необходимо будет выбирать: либо грид с тысячами столбцов с не самым плавным скролом, либо у вас скролится все безупречно, но при этом количество столбцов в DataTable будет ограничено производительностью устройства.
Необходимо сказать, что даже в нативном режиме прокрутки DataTable способен отображать много столбцов за короткий промежуток времени.
Динамическая загрузка
Технически, динамическую загрузку столбца можно реализовать аналогично динамической загрузке строки. Данные будут загружены в определенный столбец с сервера, только если этот столбец станет видимым. С точки зрения практического использования, это излишне, поэтому данная функциональность не реализована (хотя возможность есть).
Что это означает
Так же, как и с 1 млн. строк, не так часто разработчикам нужен грид с 1000 столбцами. Тем не менее, в бизнес-приложениях встречаются такие случаи, когда количество столбцов невозможно контролировать. Например, для бизнес-отчета, который включает в себя данные за десятилетний период с 2 параметрами для каждого месяца, грид будет состоять из 240 столбцов (10 * 12 * 2 = 240). Использование такого широкого DataTable не является лучшим решением с точки зрения пользовательского опыта, однако приятно знать, что даже в такой ситуации ваше приложение будет оставаться быстрым.