2

これが私のシナリオです。部分ビューを返すコントローラー メソッドを指す URL を呼び出しています。

コントローラーの方法:

public ActionResult UserProfile() { return View("UserProfile"); }

ビューを取得するための Ajax リクエスト:

$.get('/Home/UserProfile', function (data) { $('.content').html(data); });

ユーザーがクリックするたびにサーバーに戻ってコントローラーからビューを再度取得する必要がないように、「UserProfile」ビューをキャッシュしたいと思います。

また、サーバーからビューを取得する前に、ビューがクライアントにキャッシュされているかどうかを判断し、キャッシュされている場合は、キャッシュから取り出して、レイアウトの div に挿入するだけで済みます。

誰かがこのようなことをしましたか?

4

1 に答える 1

1

この属性を使用でき[OutputCache]ます。これにより、ビューをキャッシュする期間とキャッシュの場所を指定できます。たとえば、コントローラーアクションの結果をクライアントブラウザーで30秒間キャッシュしたいとします。

[OutputCache(Duration = 30, Location = OutputCacheLocation.Client)]
public ActionResult UserProfile() 
{ 
    return PartialView(); 
}

これで、多くのAJAXリクエストをトリガーできますが、サーバーに送信されるのは30秒に1つだけです。

window.setInterval(function () {
    $.get('/Home/UserProfile', function (data) {
        $('.content').html(data);
    });
}, 4000);
于 2012-07-28T07:14:45.663 に答える