黑马程序员_学习日记75_731ASP.NET(模板、缓存)
来源:互联网 发布:java实训项目 编辑:程序博客网 时间:2024/06/14 00:41
一、模板
子页面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、数据库依赖
(五)缓存使用场景:
访问量大,变化较少。典型场景:京东菜单项变化较少,访问量又特大。
- 黑马程序员_学习日记75_731ASP.NET(模板、缓存)
- 黑马程序员_学习日记5_ADO.Net入门1
- 黑马程序员_学习日记6_ADO.Net入门2
- 黑马程序员_学习日记15_ADO.Net之DataSet
- 黑马程序员_学习日记20_ASP.Net初级
- 黑马程序员_学习日记21_ASP.Net中级
- 黑马程序员_学习日记45_612数据库开发及ADO.Net(SQL语言)
- 黑马程序员_学习日记46_614数据库开发及ADO.Net(约束、数据检索)
- 黑马程序员_学习日记51_621数据库开发及ADO.Net(游标、动态sql)
- 黑马程序员_学习日记67_717ASP.NET(Socket聊天室)
- 黑马程序员_学习日记68_718ASP.NET(自己写IIS服务器、课程安排)
- 黑马程序员_学习日记69_720ASP.NET(编译、重定向、自增)
- 黑马程序员_学习日记70_721ASP.NET(Web三层增删查改CRUD)
- 黑马程序员_学习日记71_723ASP.NET(文件上传下载、IsPostBack原理、页面生命周期)
- 黑马程序员_学习日记72_724ASP.NET(ViewState、Cookie、Session、登录、分页存储过程)
- 黑马程序员_学习日记64_711jQuery3(动画、插件)
- 黑马程序员_学习日记2(java基础 一)
- 黑马程序员-----面向对象_内部类(学习日记)
- LDAP-Series-1-Chapter-4 - ACL file
- 假期实在无聊,写了个HelloWorld
- hdu 1249 三角形
- ASP.NET - Button、LinkButton和ImageButton
- 编写一个函数,反序排列一个单链表的所有节点
- 黑马程序员_学习日记75_731ASP.NET(模板、缓存)
- A Basic Template For Assembly Language Programs
- Typedef的用法
- Use GridProjection to construct surface
- 向左推进并计数的 cocos2d-x 平台的TextField(附源代码)
- java对象值传递和对象传递的总结
- 公司的一些报表
- PhP的薪水大概如何分层 (大神同学给我的答案)
- android windowManager