問題タブ [partial-caching]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - 部分的なキャッシングとフィドラー?
asp.net(webforms)を使用してWebサイトページを構築しています。
ページに部分キャッシュ(出力キャッシュ)を使用しています。したがってA
、およびB
(ユーザーコントロール)はキャッシュされます。(ページはそうではありませんが)。その中で私が見ることができ、ページがない間にキャッシュから取得される方法Fiddler
はありますかA
?B
編集
のみが含まれているとしましょうA.ascx
:
<span>Hello A</span>
とB.ascx
のみが含まれています:
<span>Hello B</span>
出力キャッシュの場所は「プライベート」です(ascxの場合のみ!)。
asp.net - 動的にレンダリングされたユーザー コントロールを出力キャッシュから除外する
さまざまなシナリオで多くのユーザー コントロールをレンダリングするサイト (実際にはアプリケーション ビルダー) があります。
ある日、マネージャーOutput cache
はメインページに追加することを決めました.
OK、すべて問題なく、リクエストは非常に迅速に応答しました!
しかし一方で、このキャッシングにはいくつかの問題があります。
InsertForm User control
いくつかのエンティティを埋めた と、エンティティのリストを表示する があると仮定するとListForm User Control
、何が起こるか推測できます。エンティティは正しく埋められているのに、リストに表示されていません。なぜでしょうか? 出力キャッシュのためです。
次に、このユーザー コントロールをキャッシュから除外する必要があります。検索の結果、Donut Cachingが見つかりました。
動的にサーバー コントロールを Substitution に追加します。
ほとんどのユーザー コントロールの実装は、すべてのページ ライフ サイクルに依存します。一部はInitで実行され、一部はLoadで実行され、一部はRenderで実行されるため、ほとんどのシナリオではプレース ホルダーがあり、次のようにします。
PreRender では、重複を防ぐために placeHolder からすべてのコントロールを削除します。
場合によっては良い結果が得られますが、一部の実装では再び問題がRequest
発生します。また、バインド イベントでは、ウィザードの次のボタンのクリック イベントのように、イベントが正しくバインドされないという問題が再び発生します。HttpContext.Current.Request
Session
Wizard
Request does not exist in this context
結局のところ、私たちは間違った方法をとっています。おそらく、これはこのシナリオでは実用的ではありません。
どう思いますか?
別のオプションはありますか?
または、この問題はすべて解決可能ですか? 何か提案はありますか?
c# - 動的にロードされる UserControls 出力キャッシュを変更する方法は?
以下のコードを使用して、いくつかの「MyControl.ascx」コントロールをページに追加します。また、.ascx ファイルで outputcache の方向も使用しました。
コントロールがキャッシュされた後、それらの出力 html は同じになります!!! どうすればそれらを変えることができますか?
出力キャッシュの方向:
C# コード: