0

両方のページに ASP.NET Outputcache を使用する方法はありますか:

  1. VaryByContentEncoding - ブラウザーが gzip をサポートしているかどうか
  2. カスタム paramによって、私の場合は HttpContext.Current.Request.UserLanguages; を使用して取得した国です。私の関数が返すカルチャから TwoLetterISORegionName を取得します。

一部の国では、同じページを少し変更して返しますが、異なる国の訪問者が異なるソーシャル ボタンを表示できるように、それらを個別にキャッシュする必要があります。もちろん、ブラウザーが gzip 圧縮をサポートしている場合、gzip を使用して js および css タグをレンダリングするため、gzip のサポートの有無は重要です。

更新: varybycontrolを使用することを考え、国 + gzip ステータス (o または 1) の両方を文字列に入れて非表示フィールドに書き込み、.net に varybycontrol を指示し、その非表示フィールド コントロールの ID を渡します。ただし、このアプローチについてはわかりません。

ありがとう。

4

1 に答える 1

1

キャッシュに VaryByCustom を使用すると、Request オブジェクト全体にアクセスでき、そこからヘッダーを取得して、要件に基づいて独自のキャッシュ キーを作成できます。

public override string GetVaryByCustomString(HttpContext context, string arg)
{
  // Do something with Request.Headers["Accept-Encoding"] (like checking if gzip is preferred...)
  return "custom-encoding-key";
}
于 2013-02-24T05:51:17.230 に答える