2013-07-26 3 views
1

Я новичок в Extjs и с помощью Extjs v4.2.0. Чтобы найти объект, я могу использовать либо Ext.getCmp (id), либо Ext.ComponentQuery.query (атрибут). Какой из них лучше использовать и быстрее?Ext.getCmp (id) или Ext.ComponentQuery.query (атрибут)

+1

сосредоточиться на «лучше» и беспокоиться о «быстрее», только если то, что вы делаете, оказывается медленным –

ответ

5

Лучше всего избегать использования любого из этих двух напрямую. Ext.getCmp особенно считается плохим «запахом кода». Вы должны стремиться организовать свой код таким образом, чтобы он вам не нужен.

компонентов запросы элегантны, но вы должны использовать их либо из parent container (тем самым уменьшая исследований дерева и позволяет использовать относительный itemId), или из controller. Я полагаю, что контроллеры - это настоящая причина, по которой в Ext4 добавлены запросы компонентов.

3

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

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

Смежные вопросы