Должен ли я кэшировать результат FindControl (), если я использую его несколько раз? - PullRequest
0 голосов
/ 17 ноября 2009

Работает ли FindControl() быстро или нет?

Должен ли я кэшировать результат, используя свойство, подобное этому, или нет, если я ищу и использую тот же элемент управления несколько раз?

private MyUserControl c;
private MyUserControl MyC
{
    get
    {
        if(c == null)
            c = (MyUserControl)FindControl("c");
        return c;
    }
}

Ответы [ 2 ]

3 голосов
/ 17 ноября 2009

Если вы говорите между запросами, то не надо.Вы не можете на самом деле.Контрольные ссылки существуют только временно, пока страница обновляется. Помещаем их в сеанс или в другой постоянный кеш, позволяем им сохраниться и испортим сборщик мусора

2 голосов
/ 17 ноября 2009

на каждый вопрос с «быстро» нужно ответить: попробуйте.

FindControl (я думаю) проходит через все элементы управления, поэтому скорость зависит от количества элементов управления. Я думаю, тебе не стоит беспокоиться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...