次の方法で共有


HttpResponse.AddCacheItemDependency メソッド

キャッシュ内の他のアイテムに依存するキャッシュされた応答を有効にします。

名前空間: System.Web
アセンブリ: System.Web (system.web.dll 内)

構文

'宣言
Public Sub AddCacheItemDependency ( _
    cacheKey As String _
)
'使用
Dim instance As HttpResponse
Dim cacheKey As String

instance.AddCacheItemDependency(cacheKey)
public void AddCacheItemDependency (
    string cacheKey
)
public:
void AddCacheItemDependency (
    String^ cacheKey
)
public void AddCacheItemDependency (
    String cacheKey
)
public function AddCacheItemDependency (
    cacheKey : String
)
適用できません。

パラメータ

  • cacheKey
    キャッシュされた応答が依存するアイテムのキー。

解説

cacheKey に対応するアイテムがキャッシュから削除されると、現在のアイテムのキャッシュされた応答は無効になります。

トピック 場所
方法 : HTTP ヘッダーを使用してページのバージョンをキャッシュする Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET ページのキャッシュを宣言によって設定する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ページのキャッシュをプログラムによって設定する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ファイルの依存関係によるページ出力のキャッシュ Visual Studio ASP .NET での Web アプリケーションの作成
方法 : 要求元のブラウザを使用してページのバージョンをキャッシュする Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET ページのキャッシュに有効期限値を設定する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : キャッシュ キーの依存関係によってページ出力をキャッシュする Visual Studio ASP .NET での Web アプリケーションの作成
方法 : キャッシュされたアイテムから値を取得する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : HTTP ヘッダーを使用してページのバージョンをキャッシュする Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET ページのキャッシュを宣言によって設定する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ページのキャッシュをプログラムによって設定する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ファイルの依存関係によるページ出力のキャッシュ Visual Studio ASP .NET での Web アプリケーションの作成
方法 : 要求元のブラウザを使用してページのバージョンをキャッシュする Visual Studio ASP .NET での Web アプリケーションの作成
方法 : ASP.NET ページのキャッシュに有効期限値を設定する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : キャッシュ キーの依存関係によってページ出力をキャッシュする Visual Studio ASP .NET での Web アプリケーションの作成
方法 : キャッシュされたアイテムから値を取得する Visual Studio ASP .NET での Web アプリケーションの作成
方法 : HTTP ヘッダーを使用してページのバージョンをキャッシュする ASP .NET Web アプリケーションの作成
方法 : ASP.NET ページのキャッシュを宣言によって設定する ASP .NET Web アプリケーションの作成
方法 : ページのキャッシュをプログラムによって設定する ASP .NET Web アプリケーションの作成
方法 : ファイルの依存関係によるページ出力のキャッシュ ASP .NET Web アプリケーションの作成
方法 : 要求元のブラウザを使用してページのバージョンをキャッシュする ASP .NET Web アプリケーションの作成
方法 : ASP.NET ページのキャッシュに有効期限値を設定する ASP .NET Web アプリケーションの作成
方法 : キャッシュ キーの依存関係によってページ出力をキャッシュする ASP .NET Web アプリケーションの作成
方法 : キャッシュされたアイテムから値を取得する ASP .NET Web アプリケーションの作成

使用例

次のコード例は、出力キャッシュされた ASP.NET ユーザー コントロールです。このコントロールのコードは、AddCacheItemDependency メソッドを呼び出し、Cache オブジェクトに格納されているアイテムのキーをパラメータとして渡します。該当するアイテムがキャッシュにない場合、出力キャッシュに格納されていたコントロールの応答は無効になります。つまり、後続の要求では、そのコントロールの応答の新しいバージョンが出力キャッシュに追加されます。

次に、bookData キーに関連付けられているアイテムが Cache オブジェクトに格納されているかどうかを確認し、その結果に応じて 2 行のテキストのいずれか 1 行を表示します。続いて、DataGrid コントロールの DataSource プロパティである dgBooks を、DataHelper カスタム クラスの GetBookData 共有メソッドを呼び出して設定し、DataGridDataBind メソッドを使用して設定します。

<%@ Control Language="vb" %>
<%@ Outputcache duration="10" varybyparam="none" shared="True" %>
<%@ Import Namespace="Samples.AspNet.VB" %>
<%@ Import Namespace="System.Data" %>
<script runat="server">

    Private Sub Page_Load(sender As Object, e As System.EventArgs)
    
        ' Make user control invalid if the 
        ' cache item changes or expires.
        Response.AddCacheItemDependency("bookData")


        ' Create a DataView object.
        Dim source As DataView = Cache("bookData")
    
        ' Check if the view is stored in the cache
        ' and generate the right label text
        ' dependent upon what is returned.
        If source Is Nothing Then

           source = DataHelper.GetBookData()
           lblCacheMsg.Text = "Data generated explicitly."
        Else
           lblCacheMsg.Text = "Data retrieved from application cache."
        End If
    
        dgBooks.DataSource = source
        dgBooks.DataBind()
    
        lblOutputMessage.Text = DateTime.Now.ToString()
    End Sub

</script>

    <table>
        <tbody>
            <tr>
                <th>
                    Books</th>
                <td>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:DataGrid id="dgBooks" runat="server"></asp:DataGrid>
                </td>
                <td>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label id="lblCacheMsg" runat="server"></asp:Label>
                </td>
                <td>
                </td>
            </tr>
            <tr>
                <td>
                    The control was created at: 
                </td>
                <td>
                    <asp:Label id="lblOutputMessage" runat="server"></asp:Label>
                </td>
            </tr>
        </tbody>
    </table>
     
    <%@ Control Language="c#" %>
    <%@ Outputcache duration="10" varybyparam="none" shared="True" %>
    <%@ Import Namespace = "Samples.AspNet.CS" %>
    <%@ Import Namespace = "System.Data" %>

<script runat="server">

    private void Page_Load(object sender, System.EventArgs e)
    {
    
        // Make user control invalid if the
        // cache item changes or expires.
        Response.AddCacheItemDependency("bookData");

        // Create a DataView object.
        DataView source = (DataView)Cache["bookData"];
    
        // Check if the view is stored in the cache
        // and generate the right label text
        // dependent upon what is returned.
        if (source == null)
        {
            source = DataHelper.GetBookData();
            lblCacheMsg.Text = "Data generated explicitly.";
        }
        else
        {
            lblCacheMsg.Text = "Data retrieved from application cache.";
        }
    
        dgBooks.DataSource = source;
        dgBooks.DataBind();
    
        lblOutputMessage.Text = DateTime.Now.ToString();
    }

</script>
    <table>
        <tbody>
            <tr>
                <th>
                    Books</th>
                <td>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:DataGrid id="dgBooks" runat="server"></asp:DataGrid>
                </td>
                <td>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label id="lblCacheMsg" runat="server"></asp:Label>
                </td>
                <td>
                </td>
            </tr>
            <tr>
                <td>
                    The control was created at: 
                </td>
                <td>
                    <asp:Label id="lblOutputMessage" runat="server"></asp:Label>
                </td>
            </tr>
        </tbody>
    </table>

    <%@ Control Language="VJ#" %>
    <%@ Outputcache duration="10" varybyparam="none" shared="True" %>
    <%@ Import Namespace = "Samples.AspNet.JSL" %>
    <%@ Import Namespace = "System.Data" %>

<script runat="server">

    private void Page_Load(Object sender, System.EventArgs e)
    {
        // Make user control invalid if the
        // cache item changes or expires.
        get_Response().AddCacheItemDependency("bookData");

        // Create a DataView object.
        DataView source = (System.Data.DataView)(get_Cache()
            .get_Item("bookData"));

        // Check if the view is stored in the cache
        // and generate the right label text
        // dependent upon what is returned.
        
        if (source == null) {
            source = DataHelper.GetBookData();
            lblCacheMsg.set_Text("Data generated explicitly.");
        }
        else {
            lblCacheMsg.set_Text("Data retrieved from application cache.");
        }

        dgBooks.set_DataSource(source);
        dgBooks.DataBind();

        lblOutputMessage.set_Text(DateTime.get_Now().ToString());
    } //Page_Load

</script>
    <table>
        <tbody>
            <tr>
                <th>
                    Books</th>
                <td>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:DataGrid id="dgBooks" runat="server"></asp:DataGrid>
                </td>
                <td>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label id="lblCacheMsg" runat="server"></asp:Label>
                </td>
                <td>
                </td>
            </tr>
            <tr>
                <td>
                    The control was created at: 
                </td>
                <td>
                    <asp:Label id="lblOutputMessage" runat="server"></asp:Label>
                </td>
            </tr>
        </tbody>
    </table>

プラットフォーム

Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

バージョン情報

.NET Framework

サポート対象 : 3.0,2.0,1.1,1.0

参照

関連項目

HttpResponse クラス
HttpResponse メンバ
System.Web 名前空間
AddCacheItemDependency

その他の技術情報

Caching ASP.NET Pages