Начну с описания моей ситуации.
Я использую пагинацию. В самой сложной ситуации моя сетка имеет 100 строк и 120 столбцов.
Я использую такие функции, как: сортировка, группировка, выбор строк, скрытие столбцов, перемещение столбцов, удаленное и локальное разбиение по страницам, фиксация столбцов (замораживание).
Я не могу повлиять на эти требования - этого требует бизнес, и я не могу это изменить. Проблема в том, что производительность неприемлема, я должен ее улучшить. На самом деле я не знаю, как я могу этого добиться.
Производительность рендеринга сетки достаточно хорошая, но время, необходимое для рендеринга сетки, абсолютно неприемлемо.
В Chrome для рендеринга сетки требуется около 40 секунд. В Internet Explorer (который я должен поддерживать) рендеринг сетки длится около 2 минут. Это время для 100 строк и 120 столбцов с 4 фиксированными столбцами (я обнаружил, что исправление столбцов оказывает огромное влияние на производительность - без исправления рендеринг длится 19 секунд, с 4 фиксированными столбцами он длится 40 секунд в хроме). Это время нужно только для рендеринга сетки, когда рассчитывается конфигурация - другими словами, это время с момента, когда я выполняю igGrid(config_object) с готовой функцией configuration_object, до момента, когда сетка рендерится.
Я читал о виртуализации сетки, но это немного помогает, потому что я не могу использовать виртуализацию столбцов с необходимыми функциями. Честно говоря, с этими ограничениями разница между сеткой и простой таблицей с виртуальными прокрутками небольшая. Виртуализация добавления строк немного помогает, но этого недостаточно, и из-за количества строк снижается производительность при использовании сетки - она лагает при прокрутке.
Мои вопросы:
Как я могу улучшить эту производительность, возможно ли это вообще с помощью Igniete UI?
Какого времени я могу достичь с идеальными оптимизированными конфигурациями сетки со 100 строками, 120 столбцами и прикладными функциями, которые я перечислил?
Как уменьшить влияние функции исправления на производительность?
Также я обнаружил, что при виртуализации строк в DOM создается около 70 строк, если у меня 100 строк на странице. Может быть, есть способ уменьшить, чтобы иметь более быстрый рендеринг?
Может быть, есть способ отобразить сетку, например, с 20 строками и 20 столбцами, сделать сетку пригодной для использования и отобразить остальное позже?