Показать сообщение отдельно
Старый 07.03.2007, 15:28   #13  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от cherv Посмотреть сообщение
Просто на форме есть несколько повторяющихся датасурсов (несколько гридов на разных закладках), хотелось для повышения производительности убрать некоторые и динамически менять связи между ними (форма грузится очень долго). Понятно, что форму можно разбить на несколько мелких, но хотелось опробовать другие варианты и по возможности оставить все же одну.
Блокируй заполнение тех DataSource которые не используются при загрузке формы.

Для этого, если эти дополнительные DataSource - "цепочки" связанных таблиц в событии DataSource.init() главной таблицы цепочки напиши

PHP код:
// DataSource.init() главной таблицы

if (данный DataSource НЕ используется)
 
this.autoSearch(false);

super() 
Кроме того, заблокируй выполнение событий ExecuteQuery() для не используемых DataSource

PHP код:
// DataSource.executeQuery()

if (данный DataSource используется)
 
super() 
Т.е. super() выполняется только если данный DataSource нужен для работы

В результате, по тем DataSource которые не нужны в данный момент не будет выполняться никаких запросов к серверу. Как следствие - уменьшается время открытия формы
За это сообщение автора поблагодарили: kashperuk (2), cherv (1).