缓存技术
来源:互联网 发布:魔兽地图制作软件 编辑:程序博客网 时间: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();
}
!!!!这样应用程序会随时监控数据库来更新页面;
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- 缓存技术
- SQL Server 对备份进行加密
- Spring与Hibernate的整合
- 我觉得CSDN社区中心是个学习的好地方
- [随笔]_三年大学,两次地震,一次甲流
- C++Primer学习笔记第一章(1/18)快速入门
- 缓存技术
- css hack(CSS多浏览器兼容)
- 仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'Admin' 中为标识列指定显式值。
- wonderfl上的精彩(一)
- 基于Visual C++2010 混合Python编程以及Python简介
- 那些相见恨晚的 JavaScript 技巧
- VS2005打开VS2008的项目
- 捕风捉影的自己
- 记录资料(linq相关)