2010-06-11 6 views
0

В настоящее время я думаю о кэшировании большинства моих представлений, которые вызывают пользовательские данные после входа пользователя в систему. Я думал, что самый простой способ - кэширование самого объекта ViewData и добавление пользовательских данных после его загрузки. Есть ли недостатки такого подхода? Есть ли лучшие способы?Кэширование asp.net viewdata

string cacheKey = "Nieuws/show/" + id; 
if (HttpRuntime.Cache[cacheKey] != null) 
{ 
     ViewData = HttpRuntime.Cache[cacheKey] as ViewDataDictionary; 
} 
else 
{ 
     // add stuff to view data 

     HttpRuntime.Cache.Insert(cacheKey, ViewData, null, DateTime.Now.AddSeconds(180), Cache.NoSlidingExpiration, 
     CacheItemPriority.NotRemovable, null); 
} 

ответ

1

Mmhhh ... ViewData может также состоять из многих ненужных сведений, которые вам не интересны при кешировании. Я бы предложил создать подходящий модельный класс и сохранить это в вашем состоянии сеанса. Это даст вам более четкую архитектуру для работы. Возможно, также есть дополнительная временная метка, чтобы иметь тип обновления, поддерживаемый для перезагрузки данных из db ...