ページに 3 つのボタンを追加し、ボタンをダブルクリックするためのイベント処理メソッドを作成します。これらの 3 つのボタンは、さまざまな有効期限戦略を使用して ASP.NET キャッシュを追加します。
<asp:Button ID="btn_InsertNoExpirationCache" runat="server" Text="無期限キャッシュを挿入する"
OnClick="btn_InsertNoExpirationCache_Click" />
<asp:Button ID="btn_InsertAbsoluteExpirationCache" runat="server" Text="絶対時間を挿入
有効期限キャッシュ" OnClick="btn_InsertAbsoluteExpirationCache_Click" />
<asp:Button ID="btn_InsertSlidingExpirationCache" runat="server" Text="変更時刻を挿入
有効期限キャッシュ" OnClick="btn_InsertSlidingExpirationCache_Click" />
3 つのボタンの Click イベント処理メソッドは次のとおりです。
protected void btn_InsertNoExpirationCache_Click(オブジェクト送信者、EventArgs e)
{
DataSet ds = GetData();
Cache.Insert("データ", ds);
}
protected void btn_InsertAbsoluteExpirationCache_Click(オブジェクト送信者、EventArgs e)
{
DataSet ds = GetData();
Cache.Insert("データ", ds,null, DateTime.Now.AddSeconds(10), TimeSpan.Zero);
}
protected void btn_InsertSlidingExpirationCache_Click(オブジェクト送信者、EventArgs e)
{
DataSet ds = GetData();
Cache.Insert("データ", ds, null, DateTime.MaxValue, TimeSpan.FromSeconds(10));
}
これら 3 つの ASP.NET キャッシュ有効期限戦略を分析してみましょう。
◆有効期限はありません。キャッシュされたキーと値を直接割り当てるだけです。
◆絶対期限切れ。 DateTime.Now.AddSeconds(10) はキャッシュが 10 秒後に期限切れになることを意味し、TimeSpan.Zero はスムーズな期限切れ戦略が使用されないことを意味します。
◆変更期限切れ(スムーズ期限切れ)。 DateTime.MaxValue は、絶対時間有効期限ポリシーが使用されないことを意味し、TimeSpan.FromSeconds(10) は、連続 10 秒間アクセスしないとキャッシュが期限切れになることを意味します。
ここでは、Insert() メソッドを使用してキャッシュを追加しました。実際、Cache には項目をキャッシュに追加できる Add() メソッドもあります。違いは、Add() メソッドはキャッシュにない項目のみを追加できるのに対し、Insert() メソッドはすでにキャッシュにある項目を追加すると失敗します (ただし、例外はスローされません)。元の項目を上書きできます。
注: アプリケーションとは異なり、ASP.NET キャッシュに挿入するときにロック操作を使用する必要はありません。キャッシュは単独で同時実行を処理します。