0

是否可以缓存从 ajax 获取请求返回的 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);
  });

我要注意的一件事是在显示缓存的 html 时清除文本框,除非您希望保留用户名。

于 2012-07-25T13:17:29.867 回答