2016-12-05 5 views
0

私たちは、OutputCacheディレクティブ、VaryByCustom属性、およびGlobal.asaxで追加されたGetVaryByCustomString()メソッドを使用してHTML出力キャッシュを使用するASP.NET WebフォームSitecoreサイトを用意しています。現在評価されているコントロールをGlobal.asax.GetVaryByCustomString()から取得できますか?

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

答えて

0

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

0

このキャッシュを行うためにカスタムコードを使用する理由はわかりません。コントロールのSublayoutがある場合は、そのコントロールの各インスタンス/ページのSublayoutに対して、プレゼンテーション/レイアウトの詳細>コントロールのプロパティに移動し、Cachingセクションまでスクロールしてキャッシングをアクティブにします。ここでは、 "キャッシュ可能"と "データで変化する"オプションをチェックします。

+0

Sitecoreキャ​​ッシングはポストバックに問題があることが知られていますが、残念なことにこのコードベースで広く使用されています。また、不必要な詳細に陥ることなく、他のシナリオでは適切に動作しません。それを使用する方法がわからないわけではありませんが、いくつかの欠点があります。私は来年MVCでサイト全体をやり直すことができますが、物事はかなり異なったものになります。 – Iucounu

関連する問題