1

MVC 4/SQL 2012/Entity Framework 5 アプリケーションで、すべてのファイルをデータベースにアップロードして単一のテーブルにしました。

次に、次のように FileController で Get アクションを実行します。

public partial class FileController : Controller {
  public virtual ActionResult Get(Guid key) {
    // Get file from database and return File
  }
}

これらのファイルに対して、MVC で使用できるキャッシュ戦略は何ですか?

ETag を使用する必要がありますか? どのように?

誰か、これで私を助けてくれませんか?

ありがとうございました、

ミゲル

4

1 に答える 1

2

ファイル名を識別するために etags を使用することは賢明な選択肢ではないと思います。それらの使用には独自の長所と短所があるため、etag の詳細については、この記事を参照してください。

あなたの場合、結果セット、ファイルをキャッシュする方法はいくつかあります。ただし、ORM オブジェクトのキャッシュを扱う場合は、通常、ファイルに何らかの変更があると、キャッシュされたアイテムが削除されるか更新されないため、注意が必要です。この部分は自分で処理する必要があります。どちらの方法でも、キャッシュされたデータを更新する必要がある期間を設定できます。

データをキャッシュするための .NET MVC4 の組み込みサポートはまだ見つけていませんが、いつでも独自のカスタマイズされた API を記述したり、既存の API を使用/変更して必要なタスクを実行したりできます。この場合、この投稿が役立つ場合があります。ファイル名に GUID キーを使用している場合、etags と uid を並べて使用するという規則はありません。必要な方法でいつでもデータをキャッシュできます。Steve のブログも参照してください。彼は MVC でエンティティ フレームワークを使用しています。

編集:

クライアントのブラウザでのキャッシングも、薄い氷のようなものです。それはすべて、アプリケーションのパフォーマンスは言うまでもなく、タイプ、期間、感度、そして最も重要なのはユーザーに依存します. 私の親友がかつて言ったように、「お腹が空くまで食べてはいけない」...

クライアントのブラウザでキャッシュを設定するには、asp で次のようにします。

以下の記事の例から:

<%@ OutputCache Duration='120' Location='Client' VaryByParam='none' %>

「これによりキャッシュが 120 秒間保存され、キャッシュされたデータはサーバーに保存されるべきではなく、クライアント ブラウザーにのみ保存されます。」

キャッシュの詳細については、この記事この記事を参照してください。

于 2013-03-19T12:16:06.797 に答える