問題タブ [donut-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 に答える
1640 参照

model-view-controller - MVC 2 C# でのイメージ キャッシュの防止

ユーザーが以前のプロフィール写真を上書きできるプロフィール画像アップロード ページがあります。

しかし、ユーザーをプロファイル ページに戻すと、ブラウザは以前の画像をキャッシュしており、F5 で更新するだけで新しい画像が返されます。

一部のユーザーは新しいアップロードが失敗したと考える可能性があるため、ブラウザーが画像をキャッシュしないようにすることは可能ですか?

理想的には、画像がキャッシュされないようにするだけです。しかし、ドーナツキャッシングをざっと見てみると、MVC2 では実行できないことが示唆されているようです...??

ご指摘ありがとうございます。

0 投票する
2 に答える
282 参照

asp.net - 複数の結果で Regex.Replace を実行するのに助けが必要です

{Substitution:GetNonCachedData}キャッシュされるべきではないデータを取得するような構文を使用するカスタム ページ キャッシュ ユーティリティを構築しています。ソリューションは組み込みのものと非常に似ています<@ OutputCache %>が、それほど柔軟ではありません (必要ありません)。最も重要なことは、キャッシュされていないデータを取得するときにセッション状態を利用できるようにすることです。

とにかく、HTML のトークンを {Substitution} タグで指定された静的メソッドの結果に置き換えるメソッドがあります。

たとえば、私のページ:

{Substitution:GetCurrentTime}静的メソッドの結果を入力します。処理が行われる場所は次のとおりです。

変数templateは、置換する必要があるカスタム トークンを含む html です。この方法の問題はtemplate、更新された html で変数を更新するたびに、変数に追加された文字が増えmatch.Indexたため、変数が正しい文字の開始点を指しなくなることです。template

文字数などをカウントするか、その他のスクリューボールの方法で機能するソリューションを思いつくことができますが、最初に、Regex オブジェクトでこれを実現する簡単な方法がないことを確認したいと思います。誰でもこれを行う方法を知っていますか?

ありがとう!

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

asp.net-mvc-2 - ASP MVC2 での部分キャッシュの現在の慣行は何ですか?

私のウェブサイトのページは、2 種類のコンテンツで構成されています。1 つ目は、ユーザー間で変動しますが、すべてのページで一定です。2 つ目は、ユーザー間で一定ですが、ページ間で変動します。これは一般的なレイアウトです。このようなコンテンツに出力キャッシュを適用する最良の方法は何ですか?

私が理解しているように、Html.Substitute ヘルパーは MVC2 レンダリング パイプラインと互換性がなく、ドーナツ キャッシュの古い方法を排除しています。

すべてのページに VaryByParam="user" で通常の出力キャッシュを使用しますか?

特異性のレベルによって、出力キャッシュの価値が低下します。キャッシュされた出力の有効期間内に、同じユーザーが同じページを何度も表示することはほとんどありません。

別の OutputCache サブシステムを使用する

OutputCache 属性とレンダリング サブシステムを変更して置換をサポートする試みがインターネット上にいくつか出回っています。私が見つけた最高のものはここにあります。

ただし、私が見つけたさまざまなスニペットは非公式の実装のようで、十分にサポートされていません。さらに、置換を MVC2 パイプラインに簡単に追加できるのであれば、それは完了していたのではないかと思う傾向があります。

個別にキャッシュされたいくつかの子アクションから最終ページを構成します

アクション メソッドは属性でフラグ付けされず、個別にキャッシュされたコンテンツを取得するOutputCacheいくつかの呼び出しを含むビューを返します。Html.RenderActionを使用することのわずかに重い意味はRenderAction別として、間接的なレイヤーとコードの匂いが追加されます。

MVC2 で個別にキャッシュされたコンテンツを作成した経験は何ですか? 何がうまくいき、何がうまくいかなかったのか?

0 投票する
4 に答える
5450 参照

caching - ASP.NET MVC 3でドーナツキャッシングを利用できますか

ASP.NET MVC 3 (最終版) が本日リリースされました。このバージョンが初期段階にあったとき、ドーナツ キャッシングが検討されていることを codeplex で読んだことを覚えています。これがV3になったかどうか誰か知っていますか? 情報を見つけることができないので、(悲しいことに)それが起こらなかったと仮定することしかできません.

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

asp.net-mvc - MVCDonutCaching-親がドーナツキャッシュされていない場合の子アクションの問題

特定の部分をキャッシュせずにページ全体をキャッシュするために、Nugetの素晴らしいMVCDonutCachingパッケージを使用しています。プロセスは単純で、すべてが正常に機能します。

私は次のようにキャッシュしています:

私のページのセクションでは、キャッシュしたくないので、次のことを行っています。

これは正常に機能し、実際にページの大部分はキャッシュされますが、ヘッダーリンク(ユーザーがログインしていない場合はログオンボタンを表示するコンテキスト依存リンク、ログインしている場合はユーザー名など)はキャッシュされません。これまでのところすべてが機能します。

私が抱えている問題は、ヘッダーリンクがマスター/レイアウトページに属し、アクションにDonutOutputCache属性が設定されているかどうかに関係なく、全面的に使用されることです。別のアクションを作成するときは、ドーナツキャッシュ属性なしで「私たちについて」と呼びましょう。ヘッダーリンクはまったく表示されません。

ソースコードを見ると、次のように見えます

明らかに、ドーナツキャッシングライブラリによって生成された上記の例では、リンクセクションがコメント付きのXMLに置き換えられています。

一言で言えば、私の質問は、親アクションがドーナツキャッシングを使用しているかどうかに関係なく、このライブラリで同じ子アクションを再利用することは可能ですか?

どんな助けでもいただければ幸いです。

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

asp.net-mvc-4 - DevTrends.MvcDonutCaching.KeyGenerator.GenerateKey の NullReferenceException

この投稿で @Aviv によって説明されている問題があります: http://www.devtrends.co.uk/blog/donut-output-caching-in-asp.net-mvc-3#125

こことCodeplexでエラーを探しましたが、見つかりませんでした。

環境はミディアムトラストです!

ルート

コントローラ

Web.config

_Layout.cshtml

フルエラー

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

asp.net - outputcache を使用してページがキャッシュされたときにページビューを保存する

出力キャッシュを使用して何時間もキャッシュするページがあります。ただし、各ページビューをデータベースに記録したいと考えています。

これらのデータを使用してパーソナライズされたデータを表示するため、分離コードにアクセスできることは非常に重要です。

したがって、私のoutputcacheパラメータは次のとおりです。

解決の考え...

基本的にドーナツのキャッシュが必要だと思いますが、それに関する情報があまり見つかりません。

置換制御はこれに適していますか? ユーザー コントロールはキャッシュされますか?

出力キャッシュを使用している場合でも、ページビューを保存するためにデータベースにアクセスするための最良のソリューションは何ですか?

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

asp.net-mvc - ドーナツ ホール キャッシング - MiniProfiler.RenderIncludes を除外

属性で装飾された ASP.NET MVC アクションがありOutputCacheますが、MiniProfiler の出力もキャッシュされるという問題があります。MiniProfiler の出力をキャッシュ (ドーナツ ホール) から除外したいのですが、MiniProfiler.RenderIncludes() のような呼び出しを除外する方法がわかりません。

どうすればこれができるか知っている人はいますか?

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 投票する
1 に答える
1346 参照

asp.net-mvc - MVC ドーナツ キャッシングがオンラインで展開されると期待どおりに機能しない

私たちは MVC Donut Caching を使用しており、この問題をデバッグしようと一日中試みていましたが、まだ解決策を見つけることができませんでした。

OutputCache よりも DonutOutputCache 属性の使用を開始することを選択しました。ロギングにより、DonutOutputCache 属性を持つ特定の部分ビュー アクションがキャッシュ パラメータに従ってキャッシュされていないことがわかりました。

次のネストされた部分ビューを持つビュー (インデックス) があります。ドーナツ キャッシュ属性が指定されているものは、角括弧内にリストされています。

  • _LayoutMainBase.cshtml
    • _Header (部分ビュー)
      • _HeaderBottomStrip (部分ビュー)
        • _HeaderMainMenu (ParialView)[DonutOutputCache(Duration = 3600)]
    • RenderBody() (HomeController.Index)[DonutOutputCache(Duration = 3600)]
    • ...

ロギングにより、_HeaderMainMenu 部分ビュー アクションが実際に 1 時間以内に複数回呼び出されていることがわかりました。

これは起こっていません:

  • OutputCache 属性に戻ると、
  • ワークステーションでローカルにテストする場合

何が理由であるかについての洞察はありますか?

助けてくれてありがとう!