кеш в asp.net (выходной)? - PullRequest
2 голосов
/ 11 марта 2010

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

<% @ OutputCache VaryByParam = "нет" Местоположение = "Клиент" Длительность = "10"%>.

Код:

protected void btn_Click(object sender, EventArgs e)
    {
        DataView dtv;
        dtv = (DataView)Cache["mycache"];
        if(dtv ==null )
        {
            string sqry="select * from scrap";
            da=new SqlDataAdapter (sqry,con);
            ds=new DataSet();
            da.Fill (ds);
            dtv=new DataView (ds.Tables[0]);
            Cache["mycache"]=dtv ;
            Response.Write ("<script> alert ('from code')</script>");
        }
        else 
        {
             Response.Write ("<script> alert ('from cache')</script>");
        }
        grd1 .DataSource =dtv;
        grd1 .DataBind();

Ответы [ 2 ]

2 голосов
/ 11 марта 2010

OutputCache и Page.Cache никак не связаны. OutputCache кэширует HTML, который генерирует страница, и возвращает его в браузер без повторного запуска вашего кода (в течение 10 секунд, как в текущей конфигурации). Page.Cache предоставляет механизм для хранения данных всего приложения. Как только что-то добавлено в этот кеш, оно будет там до следующего перезапуска вашего сайта (если явно не удалено).

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

Да, @klausbyskov прав. Попробуйте использовать перегрузку метода Cache.Insert () с аргументом окончания срока действия для установки времени ожидания для элементов кэша данных.

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