0

ajax getリクエストから返されるMVC部分ビューをキャッシュすることは可能ですか?

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

コントローラ方式:

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

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

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

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

4

2 に答える 2

3

これにより、サーバー上のビューがキャッシュされます-サーバーの負荷が制限されます-

アクションを次のように変更します。

public class Home : Controller
{
    // You can change this duration to whatever you want (in seconds)
    [OutputCache(Duration = 6000)] 
    public ActionResult SignIn()
    {
        return View("SignIn");
    }
}

AJAX リクエストは同じままです。

$.get('/Home/SignIn', function (data) { $('.content').html(data); });
于 2012-07-25T13:13:56.617 に答える
1

おそらく、結果をローカルで宣言された JavaScript 変数に格納します。たとえば(疑似コード)..

var PageState = {};
PageState.CachedView = function(){ $.get('/Home/SignIn', function (data) { $('.content').html(data); }); }

  $(document).ready(function(){
    $("#myButton").click(function(){ $("#myDialogContents").html(PageState.CachedView);
  });

私が気をつけていることの 1 つは、ユーザー名を保持したくない場合を除き、キャッシュされた html が表示されたときにテキスト ボックスをクリアすることです。

于 2012-07-25T13:17:29.867 に答える