где я должен поместить свою динамическую логику создания меню, чтобы получить хорошую производительность - PullRequest
0 голосов
/ 02 марта 2012

Я создал динамическое меню на основе разрешений пользователя и назначенного модуля, который имеет операторы loop и if - else.Это создание меню находится в Header.ascx, который включен во все страницы.

Таким образом, логика создания меню выполняется при каждой загрузке страницы.Я хочу избежать этого выполнения на каждой странице.

Любые хорошие предложения по улучшению моей реализации.

Примечание: меню зависит от пользователя.

Ответы [ 3 ]

1 голос
/ 03 марта 2012

Если код уже находится внутри пользовательского элемента управления, вы можете использовать кэширование ASP.NET User Control:

http://msdn.microsoft.com/en-us/library/hdxfb6cy.aspx(link больше не действует)

http://msdn.microsoft.com/en-us/library/h30h475z(v=vs.100).aspx (обновленная ссылка)

0 голосов
/ 02 марта 2012

В некоторых наших приложениях мы используем:

  • Сеанс (приложение, в котором нет сессий, только этот), чтобы сохранить наше меню управления в памяти или
  • Сессия для хранения ваших данных и создания меню без передачи ваших данных каждый раз или;
  • Мы просто нравимся вам и помещаем это в Page_Load.

Это будет зависеть от того, как вы получаете ваши данные и насколько велики эти данные.

0 голосов
/ 02 марта 2012

Почему бы не сохранить сгенерированное меню внутри сеанса, а создать его только в том случае, если значение сеанса отсутствует? Это увеличит потребление памяти вашим приложением, но увеличит производительность во время выполнения.

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