黑马程序员_学习日记75_731ASP.NET(模板、缓存)

来源:互联网 发布:java实训项目 编辑:程序博客网 时间:2024/06/14 00:41
一、模板
子页面Load先执行,模板页Load后执行,模板页相当于子页面的控件。
public partial class DemoOnMaster : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {        this.Response.Write("我是子页面<br/>");        //通过子页面拿到模板页的控件        var btn = this.Master.FindControl("Button1") as Button;        if (btn != null)        {            btn.Text = "这是子页面设置的值";        }    }    public void Page_PreInit(object sender, EventArgs e)    {        //MasterPageFile属性只能在Page_PreInit事件中或之前设置        //this.MasterPageFile = "~/Site.Master";    }}

二、缓存
(一)页面缓存
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PageCache.aspx.cs" Inherits="Exam.Web._731.PageCache" %><!--页面缓存的设置:Duration表示过期时间40秒,VaryByParam="none"表示任何参数的变化不会触发缓存失效,VaryByParam="*"表示任何参数的变化都会触发缓存失效--><%@ OutputCache Duration="40" VaryByParam="*" %>

(二)数据源缓存
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" EnableCaching="true" CacheDuration="20"

(三)自定义缓存

滑动窗口时间和绝对过期时间不能同时设置,如果设置了滑动过期时间,则绝对过期时间必须设置为DateTime.Maxvalue;如果设置了绝对过期时间,那么必须设置滑动窗口时间为TimeSpan.Zero。
public List<Model.StudentInfo> studentInfos = new List<Model.StudentInfo>();protected void Page_Load(object sender, EventArgs e){    if (Cache["stu"] == null)    {        studentInfos = new BLL.StudentInfo().GetModelList(string.Empty);        //设置自定义缓存的绝对过期时间为10秒,必须跟滑动窗口时间分开        //Cache.Insert("stu", studentInfos, null, DateTime.Now.AddSeconds(10), TimeSpan.Zero);        //设置自定义缓存的滑动窗口时间为10秒,10秒内如果访问缓存,缓存将暂停更新10秒        Cache.Insert("stu", studentInfos, null, DateTime.MaxValue, new TimeSpan(0,0,10));    }    else    {        studentInfos = Cache["stu"] as List<Model.StudentInfo>;    }    for (int i = 0; i < studentInfos.Count; i++)    {        Response.Write(studentInfos[i].NickName + "<br/>");    }}

(四)缓存依赖
1、文件依赖
//文件依赖:当文件变化或文件的路径变化时导致缓存失效//使用场景:如果数据时从文件中来,用此依赖项比较合适Cache.Insert("stu", studentInfos, new System.Web.Caching.CacheDependency(Request.MapPath("a.txt")));

2、数据库依赖
(五)缓存使用场景:
访问量大,变化较少。典型场景:京东菜单项变化较少,访问量又特大。
原创粉丝点击