caching a page
TRANSCRIPT
Caching a ASP.NET Page
First, import the namespace of System.Web.Caching
using System.Web.Caching;
Declare the variables
static bool itemRemoved = false;static CacheItemRemovedReason reason;CacheItemRemovedCallback onRemove = null;
Define the method of AddItemToCache, it will use Cache.Add to add items to cache
public void AddItemToCache(Object sender, EventArgs e){
itemRemoved = false;
onRemove = new CacheItemRemovedCallback(this.RemovedCallback);
if (Cache["Key1"] == null)
Cache.Add("Key1", "Caching", null, DateTime.Now.AddSeconds(60), TimeSpan.Zero, CacheItemPriority.High, onRemove);}
Define the method of RemoveItemFromCache, it will use Cache.Remove to remove items from cache
public void RemoveItemFromCache(Object sender, EventArgs e){
if (Cache["Key1"] != null)
Cache.Remove("Key1");}
When using the method of Cache.Remove , it will be leaded to invoke RemovedCallback method
public void RemovedCallback(String k, Object v, CacheItemRemovedReason r){
itemRemoved = true;reason = r;}
Page_Load
protected void Page_Load(object sender, EventArgs e){
if (itemRemoved){
Response.Write("RemovedCallback event raised.");Response.Write("<BR>");Response.Write("Reason: <B>" + reason.ToString() + "</B>");}else{
Response.Write("Value of cache key: <B>" + Server.HtmlEncode(Cache["Key1"] as string) + "</B>");}}
The HTML of the web page
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><body>
<Form id="Form1" runat="server">
<input id="Submit1" type=submit OnServerClick="AddItemToCache" value="Add Item To Cache" runat="server"/><input id="Submit2" type=submit OnServerClick="RemoveItemFromCache" value="Remove Item From Cache" runat="server"/>
</Form></body></html>