ASP.NETキャッシュ学習入門---データキャッシュ
前にページキャッシュの使用方法について説明しましたが、次にデータキャッシュの使用方法を学び、データキャッシュの使用前にページでパラメータキャッシュを使用する場合についても説明します.前述のキャッシュ設定VaryByParam="none"はパラメータなしであり、GETメソッドのプロパティに従って送信されるクエリー文字列値に対応するパラメータ、またはPOSTメソッドを使用して送信されるパラメータに対応するパラメータを設定することもできます.このプロパティを複数のパラメータに設定すると、指定したパラメータの組合せごとに出力キャッシュに異なるバージョンのリクエストドキュメントが含まれます.可能な値には、none、アスタリスク(*)、および有効なクエリー文字列またはPOSTパラメータ名が含まれます.簡単に言えば、ページで使用するQueryStringの名前を設定し、例を見てみましょう.
実行後、それぞれ16と19をクリックすると、この2つのキーワードSELECTに基づいて異なるデータが表示されます.このとき、私たちが伝えた2つのパラメータに基づいて、それぞれ2つのキャッシュページが作成されます.キーワードをクリックするたびに、表示された時間を覚えてから、時間がどのように変化しているかを繰り返しリフレッシュしてください.次にデータキャッシュについてお話しします.
データキャッシュ(Data Caching)
システムでWeb.Caching空間には「Cache」というクラスがあり、このクラスでデータをキャッシュすることができます.
最も簡単なキャッシュ方法:Cache[“MyCacheString”=“My CSDN BLOG!!”;割り当てられた形式でキャッシュを作成し、割り当てられた形式でキャッシュを取り出します:myLabel.Text = Cache["MyCacheString"].ToString();この方法の使用は非常に簡単であるが機能的にいくつかの制限を受けており、より完璧な注文キャッシュのためにCacheを使用すべきである.Insert()メソッドは、次の例を示します.
ページにGridViewを入れるだけでいいです
パラメータの説明Cache.Insert(String,Object,CacheDependency,DateTime,TimeSpan)1はキャッシュの名前、2はキャッシュされたデータオブジェクト、3はキャッシュキー依存項目、通常Null、4は期限切れ、相対期限切れを使用する場合はNoAbsoluteExpiration、5は調整可能期限切れ、パラメータ4が固定期限切れを使用する場合はNoSlidingExpirationに設定します.ほほほ見ているのは少し気絶するのではありませんか、2つの具体的な例を挙げて期限切れの問題を話しますCache.Insert("ds", dv, null,DateTime.Now.AddMinutes(5) , System.Web.Caching.Cache.NoSlidingExpiration); この例では、キャッシュが確立されてから5分後に期限が切れます.Cache.Insert("ds", dv, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(5));
この例では、キャッシュが確立された後、有効期限は調整可能です.たとえば、1:20秒で確立されたキャッシュの有効期限は6:20であるべきですが、3:20でキャッシュにアクセスした人がいたら、有効期限は8:20に調整されます.
VS 2005では、キャッシュを使用する前と使用した後のパフォーマンスの変化をテストしてみましょう.见えないで、キャッシュがない前に0.43秒使って、キャッシュを使った后に0.08秒だけ使って性能が5倍以上违いました!!!
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="date.aspx.cs" Inherits="date" %>
<%@ OutputCache Duration="60" VaryByParam="CustomerID" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title> </title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="GridView1" runat="server" BackColor="LightGoldenrodYellow"
BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None">
<FooterStyle BackColor="Tan" />
<SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" />
<PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" />
<HeaderStyle BackColor="Tan" Font-Bold="True" />
<AlternatingRowStyle BackColor="PaleGoldenrod" />
</asp:GridView>
<br />
<br />
<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/date.aspx?CustomerID=16">16</asp:HyperLink>
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="~/date.aspx?CustomerID=19">19</asp:HyperLink>
</div>
</form>
</body>
</html>
protected void Page_Load(object sender, EventArgs e)
{
string conn, comm, id;
if (Request.QueryString["CustomerID"] == null)
{
id = "16";
}
else
{
id = Request.QueryString["CustomerID"];
}
conn = "Server=WEB\SQLEXPRESS;Uid=moon;Pwd=1qaz2wsx;Database=store";
comm = "SELECT * FROM orders WHERE CustomerID =" + id;
SqlDataAdapter da = new SqlDataAdapter(comm, conn);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
Response.Write(DateTime.Now.ToString());
}
実行後、それぞれ16と19をクリックすると、この2つのキーワードSELECTに基づいて異なるデータが表示されます.このとき、私たちが伝えた2つのパラメータに基づいて、それぞれ2つのキャッシュページが作成されます.キーワードをクリックするたびに、表示された時間を覚えてから、時間がどのように変化しているかを繰り返しリフレッシュしてください.次にデータキャッシュについてお話しします.
データキャッシュ(Data Caching)
システムでWeb.Caching空間には「Cache」というクラスがあり、このクラスでデータをキャッシュすることができます.
最も簡単なキャッシュ方法:Cache[“MyCacheString”=“My CSDN BLOG!!”;割り当てられた形式でキャッシュを作成し、割り当てられた形式でキャッシュを取り出します:myLabel.Text = Cache["MyCacheString"].ToString();この方法の使用は非常に簡単であるが機能的にいくつかの制限を受けており、より完璧な注文キャッシュのためにCacheを使用すべきである.Insert()メソッドは、次の例を示します.
ページにGridViewを入れるだけでいいです
using System;
using System.Web.Caching;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class DataCache : System.Web.UI.Page
{
DataView dv;//
protected void Page_Load(object sender, EventArgs e)
{
dv = (DataView)Cache["ds"];//
if (dv == null)// , ,
{
string conn, comm;
conn = "Server=WEB\SQLEXPRESS;Uid=moon;Pwd=1qaz2wsx;Database=store";
comm = "SELECT * FROM orders";
SqlDataAdapter da = new SqlDataAdapter(comm, conn);
DataSet ds = new DataSet();
da.Fill(ds);
dv = ds.Tables[0].DefaultView;
// ,
Cache.Insert("ds", dv, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(3));
Databind();
Label1.Text = DateTime.Now.ToString();// ,
}
else
{
Databind();
Response.Write("Is Cache Data!!!");//
}
}
protected void Databind()//
{
GridView1.DataSource = dv;
GridView1.DataBind();
}
}
パラメータの説明Cache.Insert(String,Object,CacheDependency,DateTime,TimeSpan)1はキャッシュの名前、2はキャッシュされたデータオブジェクト、3はキャッシュキー依存項目、通常Null、4は期限切れ、相対期限切れを使用する場合はNoAbsoluteExpiration、5は調整可能期限切れ、パラメータ4が固定期限切れを使用する場合はNoSlidingExpirationに設定します.ほほほ見ているのは少し気絶するのではありませんか、2つの具体的な例を挙げて期限切れの問題を話しますCache.Insert("ds", dv, null,DateTime.Now.AddMinutes(5) , System.Web.Caching.Cache.NoSlidingExpiration); この例では、キャッシュが確立されてから5分後に期限が切れます.Cache.Insert("ds", dv, null, System.Web.Caching.Cache.NoAbsoluteExpiration, TimeSpan.FromMinutes(5));
この例では、キャッシュが確立された後、有効期限は調整可能です.たとえば、1:20秒で確立されたキャッシュの有効期限は6:20であるべきですが、3:20でキャッシュにアクセスした人がいたら、有効期限は8:20に調整されます.
VS 2005では、キャッシュを使用する前と使用した後のパフォーマンスの変化をテストしてみましょう.见えないで、キャッシュがない前に0.43秒使って、キャッシュを使った后に0.08秒だけ使って性能が5倍以上违いました!!!