3

キャッシングに関して抱えていた問題のほとんどを解決しました。しかし、まだ 1 つのことがあります。出力キャッシュを使用する UserControl があります。ちょうどこのような:

<%@ OutputCache Duration="1200" VaryByParam="none" %> 

ただし、ご覧のとおり、コントロールの生成には 5 ~ 10 秒かかるため、コントロールは 12 分ごとに再作成されます。

現在、ASP.NET のデフォルトの動作は、ユーザーがページに入ったときにコントロールを作成し、それを 12 分間キャッシュに保持することです。次に、さらに 5 分後にユーザーがページに入ると、コントロールが再び作成されます。

12 分間のキャッシュの有効期限が切れた後、ASP.NET に強制的にコントロールを再作成させる方法はありますか? 次のユーザーの訪問に問題はありませんか?

または、完璧な解決策です。たとえば、11 分 50 秒後にバックグラウンドでコントロールを再作成し、12 分後に実際のコントロールを新しいものに置き換えるだけではありませんか?

手伝ってくれてありがとう!

4

2 に答える 2

1

ASP.NETはトリガーのみで機能するため、Windowsのスケジュールされたタスクを使用して12分ごとにこのページにアクセスします。トリガーは、12分ごとに他のページを要求するAjaxか、Webページにアクセスする次のユーザーのいずれかです。

于 2010-07-06T07:26:54.380 に答える
0

よくわかりませんが、ユーザーがページを表示している間に、コントロールを一定間隔で非同期に更新したいようですね。

その場合は、Ajax を使用する必要があります。たとえば、Timerコントロールを使用すると、設定された間隔で UpdatePanels を非同期に更新できます。

ところで、あなたの例の期間は実際には 20 分です。

于 2010-07-06T07:31:00.727 に答える