黑马程序员_学习日记75_731ASP.NET(模板、缓存)
2012-08-09 21:59
459 查看
一、模板
子页面Load先执行,模板页Load后执行,模板页相当于子页面的控件。
二、缓存
(一)页面缓存
(二)数据源缓存
(三)自定义缓存
滑动窗口时间和绝对过期时间不能同时设置,如果设置了滑动过期时间,则绝对过期时间必须设置为DateTime
.Maxvalue;如果设置了绝对过期时间,那么必须设置滑动窗口时间为TimeSpan.Zero。
(四)缓存依赖
1、文件依赖
2、数据库依赖
(五)缓存使用场景:
访问量大,变化较少。典型场景:京东菜单项变化较少,访问量又特大。
子页面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、数据库依赖
(五)缓存使用场景:
访问量大,变化较少。典型场景:京东菜单项变化较少,访问量又特大。
相关文章推荐
- 黑马程序员_学习日记71_723ASP.NET(文件上传下载、IsPostBack原理、页面生命周期)
- 黑马程序员_学习日记73_725ASP.NET(禁用Cookie、ASP.NET中的重要对象、JavaScript实现AJAX、两种Json格式的序列化方法、JQuery中实现ajax的五种方法)
- 黑马程序员_学习日记20_ASP.Net初级
- 黑马程序员_学习日记27_ASP.NET使用Rich控件
- 黑马程序员_学习日记9_ASP.NET服务器处理过程_一般处理程序_复习HTML标签
- 黑马程序员_学习日记21_ASP.Net中级
- 黑马程序员_学习日记74_727ASP.NET(模拟Session、jsValidate异步验证表单、AjaxForm异步提交表单)
- 黑马程序员_学习日记66_716ASP.NET(使用回调函数的异步委托、生产者消费者)
- 黑马程序员_学习日记65_713ASP.NET(委托、托管、扩展方法、泛型委托、进程_应用程序域_线程、多线程、异步委托)
- 黑马程序员_学习日记72_724ASP.NET(ViewState、Cookie、Session、登录、分页存储过程)
- 黑马程序员_学习日记67_717ASP.NET(Socket聊天室)
- 黑马程序员- ASP.NET(2)学习日记
- 黑马程序员_学习日记68_718ASP.NET(自己写IIS服务器、课程安排)
- 黑马程序员_学习日记11_asp.net初探之视图状态
- asp.net(c#)缓存Cache对象(学习日记一)
- 黑马程序员_学习日记70_721ASP.NET(Web三层增删查改CRUD)
- 黑马程序员_学习日记26_ASP.NET使用验证控件
- 黑马程序员之ASP.NET 学习笔记:ASP.NET编程模型
- 黑马程序员之ASP.NET学习笔记:MVC模式的优缺点
- 黑马程序员_学习日记47_615数据库开发及ADO.Net(连接字符串、SqlDataReader对象、连接池)