Pull to refresh
Comments 7
Спасибо за статью. Интересное решение. У нас немного иначе, у нас над гридом есть тулбар, который меняется в зависимости от выбранной строки. А как это влияет на скорость, особенно при каком-нибудь infinite scrolling? Ведь sencha team специально убрала все контролы из грида, чтобы скорость его при больших объемах данных была приемлемой…
Да, влияет. Тут если сначала покликать на кнопки, а потом попробовать сортировать по соседним колонкам — начинаются заметные лаги.
Похоже, вам еще предстоит работа над рендеренгом вашего компонента. Что-то мне подсказывает, что вы где-то использовали не те события Ext.grid.Panel. Жаль сейчас нет времени разобраться, да и на extjs не делал ничего больше года, может быть чуть позже посмотрю сам.
Может быть, лаги из-за задержки?
Ext.defer(this.renderItems, 50, this);
Да, Вы правы, рендеринг производится по таймауту в 50ms (величина подобрана эмпирически и, конечно, хорошо бы параметр вынести в отдельное поле). Обусловлено это отсутствием подходящего события под такой рендеринг. Дилемма состоит в том, что строки таблицы обновляются после загрузки store'а (store -> load или store -> prefetch). Но, в то же время, рендерить компонент не дождавшись, пока строки таблицы с данными не будут отрисованы (grid -> afterrender), так же чревато неверным поведением. В связи с чем, в процессе разработки было протестировано множество событий компонента Ext.grid.Panel. Но, увы, большинство из них не подошло по определенным причинам. По-моему, дело было в том, что объекты features отрисовываются после grid'а, но при этом сами не содержат событий, которые позволили бы отловить сей момент.
Проще говоря, новые features либо были неправильно применены к данной проблеме, либо еще сырые для использования в таких случаях.
Разумеется, для решения подобной задачи существует «actioncolumn». Однако, для его элемента нет нормальной возможности добавить подпись к кнопке. Но вместо размещения кнопок в дополнительной колонке, было принято решения перенести их на новую строку для большей наглядности, т.к. работнику, зачастую, достаточно лишь прочесть первую ячейку, чтобы начать тянуться к функциональной кнопке.
Only those users with full accounts are able to leave comments. Log in, please.