3

すべての Umbraco v4 ページで outputcache を使用していますが、Ajax 呼び出しではそのようなキャッシュを避けたいと考えています ...

default.aspx に次の行を追加しました。

<%@OutputCache CacheProfile="umbProfil" %>

次に、web.config で:

<caching>
  <outputCacheSettings>
    <outputCacheProfiles>
      <add name="umbProfil" duration="120" enabled="true" varyByHeader="???"
           varyByParam="umbPage" location="ServerAndClient" />
    </outputCacheProfiles>
  </outputCacheSettings>
</caching>

問題は、私の Ajax 呼び出しを含め、すべてがキャッシュされていることです。これは実際にはすべきではありません。それらは主にフォームであり、キャッシュが期限切れになるまでフィールドエントリは初期値で維持されます...

これらの Ajax は「部分ビュー」、つまり一部のフォームのみをレンダリングする Umbraco の通常のページです...

Ajax GET/POST 呼び出し以外の umbPage に関連するすべてを実際にキャッシュするには、varyByHeader パラメーターをどのように設定すればよいですか?

4

1 に答える 1

0

各フォームで偽造防止の隠しテキストフィールドを使用しているため、最終的にこのフォームパラメーターを変数パラメーターとして使用しました。

<add name="umbProfil" duration="120" enabled="true"
               varyByParam="umbPage;__RequestVerificationToken" location="ServerAndClient" />

私のumbPageはキャッシュされていますが、フォームのPOSTはキャッシュされていません(または、少なくとも、POSTごとに120秒間キャッシュインスタンスが1つ作成されます)。

より良いアイデア (POST のキャッシュがまったくない) がある場合は、アドバイスをお願いします。

于 2012-06-20T06:28:04.527 に答える