0

ASP.NET Web フォーム サイトコア サイトでは、OutputCache ディレクティブ、VaryByCustom 属性、および Global.asax に追加された GetVaryByCustomString() メソッドを使用して HTML 出力キャッシュを使用しています。

GetVaryByCustomString() メソッドから現在のコントロールへのハンドルを取得することは可能ですか? このメソッドを使用した出力キャッシュと、同じページに追加されたコントロールの複数のインスタンスで問題が発生しています。コントロールへのハンドルがあれば、Sitecore パラメーター (この場合は重要) に基づいて出力を個別にキャッシュし、残りのキャッシュ戦略とうまく調和させることができます。

4

2 に答える 2

0

カスタム コードを使用してこのキャッシュを行う理由がわかりません。コントロールのサブレイアウトがある場合、ページ上のそのコントロール/サブレイアウトの各インスタンスに対して、[プレゼンテーション/レイアウトの詳細] > [コントロールのプロパティ] に移動し、[キャッシュ] セクションまでスクロールしてキャッシュを有効にします。そこで、「キャッシュ可能」および「データごとに変更」オプションをチェックします。

于 2016-12-06T16:13:30.683 に答える
0

Global.asax の GetVaryByCustomString() から現在評価されているコードを取得することはできないようです。ただし、最初の目標は、同じページに複数回表示される Sitecore コントロールのキャッシュ出力を変更することだったので、ページ内のすべてのコントロールを一覧表示し、各コントロールの作成中にリクエスト コンテキストに関連付けられたカウンターをインクリメントすることでこれを達成できることがわかりました。コントロールは決定論的で信頼できる順序で配置されるため、キーをキャッシュし、それをキーに追加します。

于 2016-12-09T14:49:58.797 に答える