Нужна помощь в технике кэширования данных - PullRequest
0 голосов
/ 04 марта 2010

Я реализую, как кэширование данных работает в asp.net. Для этого я сохранил три кнопки

1) кнопка кеширования даты,

2) кнопка текущей даты и

3) Кнопка удаления кэша.

Если я нажму на кнопку кеширования даты, дата будет кэшироваться в течение 2 минут. если нажать на кнопку текущей даты, будет отображаться текущая дата и время, и, наконец, если я нажму на кнопку «Удалить кэш», кэш кнопки будет удален, и отобразятся свежие дата кеша и новая текущая дата.

Для этого я выполнил кодирование, но datetime не всегда кэширует, оно всегда обновляется. Я имею в виду, если datetime кэшируется в течение 2 минут, и если я нажимаю кнопку кэширования, datetime не должен меняться, но в моем случае оно всегда меняется .... кто-нибудь изменить мой код ...

  protected void BtnCacheTime_Click(object sender, EventArgs e)
  {      
            Cache.Insert("date",DateTime.Now,null, 
                         DateTime.Now.AddMinutes(2),    TimeSpan.Zero);
            lblCacheDateTime.Text = Cache["date"].ToString();
  }  

  protected void BtnCurrentDate_Click(object sender, EventArgs e)
  {
     lblCurrentDate.Text = DateTime.Now.ToString();
  }  
 protected void BtnRemoveCache_Click(object sender, EventArgs e)
 {
        Cache.Remove("date");
        lblFreshCacheDate.Text = DateTime.Now.ToString();
        lblFreshCrntDate.Text = DateTime.Now.ToString();        
 }

1 Ответ

1 голос
/ 04 марта 2010

Ну, на этот раз вы вставляете DateTime.Now в кеш, а затем немедленно считывает его значение. Что еще вы ожидаете?

Далее, вы не должны использовать TimeSpan.Zero - при установке абсолютного срока действия вы должны использовать Cache.NoSlidingExpiration.

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