Производительность: Способы Улучшения

Общие техники

При работе с 1000-2000 задачами или более, в зависимости от вашей конфигурации и плагинов, вы можете заметить задержки в отображении диаграммы Ганта.

Вот несколько способов решения этой проблемы:

  1. Отключите отображение отдельных ячеек и оставьте только отображение строк, установив опцию show_task_cells в 'false'.
  2. Используйте фоновое изображение для области временной шкалы вместо реальных линий, включив опцию static_background (доступно в PRO версии).
  3. Активируйте динамическую загрузку, установив опцию branch_loading в 'true'.
  4. Измените шаг шкалы на более крупную единицу, такую как "месяц" или "год", изменив свойство unit в опции scales.
  5. Ограничьте диапазон видимых дат, настроив опции start_date и end_date.
  6. Скрывайте индикаторы прогресса на задачах, установив опцию show_progress в 'false'.
  7. Ускорьте отображение шкалы, включив опцию smart_scales, если она выключена.
  8. Если вы используете календарь рабочего времени, настройте параметры рабочего времени до загрузки данных в диаграмму Ганта. Пропуск этого шага может привести к двойному пересчету длительности — сначала при загрузке данных, а затем при применении календаря. Хотя всё будет работать корректно, это может замедлить инициализацию вашего приложения.
  9. Если вы установили duration_unit на "час" или "минута", убедитесь, что duration_step установлен на 1. Эта комбинация запускает специфичные оптимизации для расчетов рабочего времени, которые работают только с шагом 1. Существует заметная разница в производительности между оптимизированным и неоптимизированным режимами.

Related sample:  Performance tweaks

Умное Отображение

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

Начиная с версии 6.2, умное отображение включено по умолчанию и входит в основной файл dhtmlxgantt.js. Вам больше не нужно включать отдельный файл dhtmlxgantt_smart_rendering.js для использования этой функции.

Если вы включите старый файл dhtmlxgantt_smart_rendering.js, он переопределит новую встроенную версию smart_rendering и её улучшения.

Если вам нужно отключить умное отображение, вы можете установить его конфигурацию в false:

gantt.config.smart_rendering = false;

Related sample:  Working with 30000 tasks

Стандартный процесс умного отображения проверяет, находится ли позиция элемента Ганта в видимой области экрана и решает, отображать его или нет.

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

Работа с большим диапазоном дат

Эта функциональность доступна только в версии PRO

Если ваш проект включает в себя большой диапазон дат, рассмотрите возможность включения параметра static_background вместе с умным отображением:

gantt.config.static_background = true;

Related sample:  Performance tweaks

К началу