ag-grid с виртуальной прокруткой без ленивой нагрузки - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть требование, когда нам нужно показать около 24 тыс. Записей, которые имеют 84 столбца в одном go, так как пользователь хочет фильтровать весь набор данных.

Так что мы можем иметь механизм виртуальной прокрутки с -сетка без ленивой загрузки ?? Если да, не могли бы вы, пожалуйста, здесь. Любой пример приветствуется.

1 Ответ

0 голосов
/ 25 апреля 2020

Попробовав подобные вещи с одинаковым количеством строк и столбцов, я обнаружил, что практически невозможно добиться разумной производительности, особенно если вы используете такие вещи, как «каркасные» средства визуализации. А если вы включите группировку, у вас будут плохие времена.

То, что моя команда сделала для включения фильтрации и сортировки по всему большому набору данных, включает:

  • Мы использовали модель строки на стороне клиента - самый простой режим сетки

  • Мы загружаем только «страницу» данных за раз. Это включает в себя метод проб и ошибок с разумной выборкой данных и фактическими функциями, которые вы используете для достижения максимального размера страницы, который все еще позволяет сетке работать хорошо в отношении прокрутки / рендеринга.

  • Мы внедрили наш собственный пейджинг. Это включает в себя отображение элемента управления подкачкой и выборку следующей / предыдущей страницы с сервера. Это, очевидно, требует поддержки на стороне сервера. С точки зрения единой сетки, он всегда управляет только одной страницей данных. Каждая страница полностью заменяется следующей страницей в обратном направлении на сервер.

  • Мы реализовали сортировку и фильтрацию на стороне сервера. Когда пользователь сортирует или фильтрует, мы ловим событие, отправляем параметры сортировки / фильтрации на сервер и возвращаемся на новую страницу. Когда это происходит, мы возвращаемся на страницу 0 (или на страницу 1 на языке пользователя). Это хорошо согласуется с поддержкой фильтров, не связанных с сеткой, которые есть в других частях страницы (в нашем случае это панель инструментов над сеткой).

  • Группирование разрешается только при наличии одна страница данных, и поощряйте наших пользователей фильтровать свои данные, чтобы перейти на одну страницу данных, чтобы они могли сгруппировать их. В зависимости от данных размер страницы может достигать 1000 строк. Опять же, вы должны получить размер страницы в каждом конкретном случае.

Итак, вкратце, когда нам нужно поддержать фильтрацию / сортировку по большому набору данных, мы делаем все, что связано с высокой производительностью, на стороне сервера.

Я уверен, что другие будут утверждать, что ag-grid имеет много расширенных функций, которые я предлагаю вам не использовать. И они были бы правильными для наборов данных малого и среднего размера, но когда дело доходит до обработки больших наборов данных, я обнаружил, что ag-grid просто не может справиться с этим с разумной производительностью.

...