AdvancedDataGrid: оптимизация добавления в базовый dataProvider

#apache-flex #advanceddatagrid

#apache-flex #advanceddatagrid

Вопрос:

Друзья,

Я знаю, что вопросы, связанные с ADG, обычно игнорируются, потому что «это дерьмовый компонент». Действительно, это не один из моих любимых фрагментов кода, но я застрял на нем и работал (довольно усердно) над оптимизацией его производительности. Оказывается, есть немало вещей, которые можно сделать, чтобы ускорить процесс. Однако я зациклился на одном — не оптимизировать добавление элемента в базовый dataprovider. Допустим, вы хотите добавить строку в ADG с помощью вызова addChildAt в DP. Все кажется хорошим, но операция выполняется так медленно — это невыносимо. Теперь я понимаю, что ADG, возможно, потребуется перерисовать все, что находится ниже добавленной строки, но серьезно, в 2011 году это не должно занимать много времени и 100 долларов моего процессора. Кто-нибудь знает, что может быть основным виновником?

Примечание: Я могу перехватить CollectionEvent вида «add» и не доставлять их в ADG, что, как я думал, помогло бы, но ADG все еще обновляется, и на это уходит вечность, поэтому я предполагаю, что где-то еще есть что-то еще.

спасибо за любые советы!

f

Ответ №1:

ADG является основным виновником. Оставьте всякую надежду, вы, кто использует AdvancedDataGrid… Вы проверили его исходный код? Это ужасно на ооочень многих уровнях…. Даже если вы найдете виновника и придумаете исправление, почти все реальные методы и свойства помечены как final и private, так что вы просто не сможете переопределить этот тип поведения.

Это дерьмовый ответ, но я все еще поддерживаю его…