問題タブ [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.

0 投票する
1 に答える
171 参照

asp.net - 部分的なキャッシングとフィドラー?

asp.net(webforms)を使用してWebサイトページを構築しています。

ページに部分キャッシュ(出力キャッシュ)を使用しています。したがってA、およびB(ユーザーコントロール)はキャッシュされます。(ページはそうではありませんが)。その中で私が見ることができ、ページがない間にキャッシュから取得される方法FiddlerはありますAB

編集

のみが含まれているとしましょうA.ascx

<span>Hello A</span>

B.ascxのみが含まれています:

<span>Hello B</span>

出力キャッシュの場所は「プライベートです(ascxの場合のみ!)。

0 投票する
1 に答える
662 参照

asp.net - 動的にレンダリングされたユーザー コントロールを出力キャッシュから除外する

さまざまなシナリオで多くのユーザー コントロールをレンダリングするサイト (実際にはアプリケーション ビルダー) があります。

ある日、マネージャーOutput cacheはメインページに追加することを決めました.

OK、すべて問題なく、リクエストは非常に迅速に応答しました!

しかし一方で、このキャッシングにはいくつかの問題があります。

InsertForm User controlいくつかのエンティティを埋めた と、エンティティのリストを表示する があると仮定するとListForm User Control、何が起こるか推測できます。エンティティは正しく埋められているのに、リストに表示されていません。なぜでしょうか? 出力キャッシュのためです。

次に、このユーザー コントロールをキャッシュから除外する必要があります。検索の結果、Donut Cachingが見つかりました。

動的にサーバー コントロールを Substitution に追加します

ほとんどのユーザー コントロールの実装は、すべてのページ ライフ サイクルに依存します。一部はInitで実行され、一部はLoadで実行され、一部はRenderで実行されるため、ほとんどのシナリオではプレース ホルダーがあり、次のようにします。

ここに画像の説明を入力

ここに画像の説明を入力

PreRender では、重複を防ぐために placeHolder からすべてのコントロールを削除します。

ここに画像の説明を入力

場合によっては良い結果が得られますが、一部の実装では再び問題がRequest発生します。また、バインド イベントでは、ウィザードの次のボタンのクリック イベントのように、イベントが正しくバインドされないという問題が再び発生します。HttpContext.Current.RequestSessionWizardRequest does not exist in this context

結局のところ、私たちは間違った方法をとっています。おそらく、これはこのシナリオでは実用的ではありません。

どう思いますか?

別のオプションはありますか?

または、この問題はすべて解決可能ですか? 何か提案はありますか?

0 投票する
0 に答える
62 参照

c# - 動的にロードされる UserControls 出力キャッシュを変更する方法は?

以下のコードを使用して、いくつかの「MyControl.ascx」コントロールをページに追加します。また、.ascx ファイルで outputcache の方向も使用しました。

コントロールがキャッシュされた後、それらの出力 html は同じになります!!! どうすればそれらを変えることができますか?

出力キャッシュの方向:

C# コード: