0

ASP.Net Webサイトのホームページでページ出力キャッシュを使用して、読み込みを高速化しています。キャッシュ時間は非常に短い(5分)ため、データの更新は短時間でユーザーに反映されます。ホームページ自体には、表示された質問のベストアンサーに投票するために使用される「投票」というセクションがあります。このセクションでは、ユーザーがすでに投票した場合に投票結果が表示され、投票していないユーザーの場合は、投票の質問を表示する必要があります。問題は、すでに投票したユーザーがホームページにアクセスしたときに、投票結果が表示された状態でページがキャッシュされることです。その5分のキャッシュ時間内に、まだ投票していない別のユーザーがそのページにアクセスすると、そのユーザーの結果も投票の質問の代わりに表示されるため、ユーザーはその投票に投票できません。

これを防ぐために、ホームページのすべてのセクションのデータテーブルをキャッシュしてページをレンダリングするデータキャッシュ手法を試しました。この手法はまだページ出力キャッシュほど高速ではないため、ユーザーはこの手法を望んでいません。両方のデータキャッシングのロード時間は、ページ出力キャッシングと比較するとはるかに長くなります。

また、ページ全体がキャッシュされた場合でも、ページの一部だけがリロードされる置換キャッシュ方式を試しました。このキャッシュ方法で最も重要な問題は、その置換コントロールで使用できるのはHTMLコントロールのみであるということです。HTMLコントロールのみを使用して投票セクションを作成しようとしましたが、ページの他のセクションで使用されているAJAX更新パネルで問題が発生します。

この問題を解決するために私を案内してください。ページの一部(ポーリングセクション)だけをユーザーごとにリロードする必要があり、他のセクションはキャッシュから配信する必要があります。これは、ページのパフォーマンスを損なうことなく発生するはずです。

4

2 に答える 2

1

ページのポーリングセクションをiframeに実装しましたが、iframe内のコンテンツはキャッシュされません。シンプルで一時的な解決策!!!

于 2011-08-31T03:57:42.017 に答える
0

「ドーナツキャッシング」をグーグルで検索するか、これらを見てください:

http://weblogs.asp.net/scottgu/archive/2006/11/28/tip-trick-implement-donut-caching-with-the-asp-net-2-0-output-cache-substitution-feature。 aspx

ユーザーコントロールでページレベルのキャッシュをオフにする

于 2011-04-06T11:53:01.093 に答える