Вопрос

можно кэшировать частичный вид в MVC, возвращаемый из AJAX GET PROQ?

Вот мой сценарий.Я звоню URL, который указывает на метод контроллера, который возвращает частичный вид:

Метод контроллера:

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

AJAX Запрос, чтобы получить представление:

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

Можно ли кэшировать мою кнопку «Signin», чтобы каждый раз, когда пользователь нажимает на него, ему не нужно вернуться к серверу, чтобы снова получить вид от контроллера?

Это было полезно?

Решение

Это будет кэшировать вид на сервер - ограничивающая нагрузка на сервер -

Измените действие:

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); });
.

Другие советы

Может быть, хранить результаты в локально объявленном переменной 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 отображается, если вы не хотите, чтобы имя не было сохранено.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top