ASP.NET воссоздает кэшированный элемент управления - PullRequest
3 голосов
/ 06 июля 2010

Я решил большинство проблем с кэшированием. Но все же есть одна вещь. У меня есть UserControl, для которого я использую кэширование вывода. Просто так:

<%@ OutputCache Duration="1200" VaryByParam="none" %> 

Однако, как вы можете видеть, элемент управления воссоздается каждые 12 минут, поскольку для его создания требуется от 5 до 10 секунд.

Теперь по умолчанию ASP.NET создает элемент управления при входе пользователя на страницу и сохраняет его в кеше в течение 12 минут. Затем, когда через 5 минут пользователь заходит на страницу, элемент управления создается снова.

Есть ли способ заставить ASP.NET воссоздать элемент управления после истечения 12-минутного кэша? Не имеет значения при следующем посещении пользователя?

Или даже идеальное решение: воссоздать управление в фоновом режиме, скажем, через 11 минут 50 секунд, а затем просто заменить действующее на новое через 12 минут?

Спасибо за помощь!

Ответы [ 2 ]

1 голос
/ 06 июля 2010

Используйте запланированные задачи Windows для входа на эту страницу каждые 12 минут, поскольку ASP.NET работает только с триггерами. Триггер может быть либо Ajax, который запрашивает другую страницу каждые 12 минут, либо следующим пользователем, который заходит на вашу веб-страницу.

0 голосов
/ 06 июля 2010

Я не уверен, но похоже, что вы хотите, чтобы ваш элемент управления обновлялся асинхронно с интервалами, пока пользователь просматривает страницу?

Если это так, вам нужно использовать Ajax. Например, элемент управления Timer позволяет асинхронно обновлять UpdatePanels через заданные интервалы.

Кстати, продолжительность вашего примера на самом деле составляет 20 минут.

...