ASP.Net кеширование - PullRequest
       7

ASP.Net кеширование

2 голосов
/ 15 июля 2009

У меня есть приложение, которое загружает данные от третьих лиц в 3 часа утра каждое утро Ничего не меняется с точки зрения содержания до тех пор ...

можно ли кешировать страницу "информация о продукте" до тех пор? или это то, что я должен установить в global.asax?

Ответы [ 5 ]

2 голосов
/ 15 июля 2009

Другой вариант - использовать класс System.Web.Caching.Cache. Каждый раз, когда вы загружаете свои данные, вы можете кэшировать их здесь, а затем извлекать их по мере необходимости. Этот класс допускает истечение срока TimeSpan, но, поскольку вы загружаете данные в определенное время каждый день, это не имеет значения.

using System.Web.Caching;
Public Class SomeClass
{
  Public SomeDataCollection GetCachedData()
  {
      if( Cache["Key"] == null) //You want to always be sure to check if set
         Cache["Key"] = GetDataCollectionFromSomewhere();

      return Cache["Key"];
  }
}
2 голосов
/ 15 июля 2009

Да, вы можете кэшировать его до тех пор. Есть много способов сделать это.

Если у вас есть серверный вызов для получения данных, тогда я просто добавлю эти данные в кеш, когда вы впервые получите их, и установите срок действия в 3 часа утра на следующий день. Затем на каждом вызове страницы проверяйте кэш для этого объекта данных и, если он возвращает ноль, инициируйте другую выборку данных.

Вы также можете использовать кэширование вывода страницы, но это не дает вам такого подробного контроля.

как то так:

if (HttpContext.Current.Cache["MyData"] != null)
  return HttpContext.Current.Cache["MyData"] as DataObjectClass

//Get data into dataobject

HttpContext.Current.Cache.Add(
                  "MyData",
                  DataObject,
                  DateTime (tomorrow 3am),  // psuedo
                  null,
                  TimeSpan.Zero,
                  System.Web.Caching.CacheItemPriority.Normal,
                  null);

return DataObject;
1 голос
/ 15 июля 2009

Вы можете установить его на этой странице. В коде этой страницы:

Response.Cache.SetExpires("put tomorrow's date @ 3AM here");
Response.Cache.SetCacheability(HttpCacheability.Public);
1 голос
/ 15 июля 2009
0 голосов
/ 15 июля 2009

Я бы сохранял эти сторонние данные каждые 24 часа. Кэширование зависит от того, что это за данные. Это файл, который нуждается в дальнейшей обработке? Затем обработайте его и кэшируйте в памяти. И ваше аварийное переключение происходит следующим образом: кэш в памяти, временное постоянное местоположение, стороннее местоположение.

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