缓存技术

来源:互联网 发布:魔兽地图制作软件 编辑:程序博客网 时间:2024/05/21 09:08

整页缓存:(适用于数据量大,不需频繁更新的页面)

在page指令下面添加:

Duration:指缓存的时间,以秒为单位;

VaryByParam:通过参数缓存;

VaryByControl:通过控件缓存;一般的控件主List控件;

location:保存的位置;

VaryByCustom:通过浏览器缓存;

<%@ OutputCache Duration ="20" VaryByParam ="none" VaryByControl ="none" Location ="Any" VaryByCustom ="browser"%>(第三个参数和第四个参数至少有其中一个,前二个参数是必需的)

 

 

利用参数缓存:(可以根据不同的参数缓存不同的页面)

如果请求的页面像这样的(http://localhost:1062/Test/Details.aspx?id=16)带参的url,那么可以使用带参缓存页面

在page指令下添加缓存指令:

<%@ OutputCache Duration ="20" VaryByParam ="id" %>(多个参数时,用分号隔开,只有当所有参数都匹配时,才会缓存)

 

使用控件缓存页面:

当页面有集合控件可以储存多个值时,可以使用控件缓存

<%@ OutputCache Duration="120" VaryByParam="none" VaryByControl="ddlStarGender" %>

 

页面部分缓存(替代缓存)

---缓存页面一部分:(写一方法,把不需缓存的地方,用一方法替换掉)

在整页缓存的基础上:在页面添加一控件Substitution(替代页面中不需要缓存的部分)

<asp:Substitution ID="Substitution1" runat="server" MethodName ="GetDateTime"/>

其中MethodName中调用页面中不需替换的部分的方法:

在后台代码中添加这样的方法:

例:

    public static string GetDateTime(HttpContext context)
    {
        return DateTime.Now.ToString();
    }

这样的方法要注意三点:①这个方法必需是静态的

                                 ②必需是String类型的返回值

                                 ③参数必需是HttpContext类型的

应用程序缓存:

----SQL缓存依赖----

首先需要开通SQL的一个服务:

alter database 数据库名字 set enable_broker

然后在Page指令下面添加缓存指令:

<%@ OutputCache Duration= "120" SqlDependency="CommandNotification" VaryByParam="none" %>

 

在后台代码中添加代码:

    protected void Page_Load(object sender, EventArgs e)
    {
        // 显示页面创建的时间
        lblTime.Text = System.DateTime.Now.ToString();

        string connString = "Data Source=A5FDE8B0B6E1433;Initial Catalog=MyBookShop;User ID=sa;Pwd=780320380";
      
        // 启动接收依赖项更改通知的监听器
        SqlDependency.Start(connString);

        SqlConnection connection = new SqlConnection(connString);
        DataSet dataSet = new DataSet();

        string sql = "SELECT title 书名,author 作者,publishdate 出版日期,unitprice 单价,clicks 点击次数 FROM dbo.books";
        SqlDataAdapter adapter = new SqlDataAdapter(sql, connection);
        adapter.Fill(dataSet);

        gvBooksInfo.DataSource = dataSet;
        gvBooksInfo.DataBind(); 
    }

!!!!这样应用程序会随时监控数据库来更新页面;

原创粉丝点击