Cache MVC PartialView возвращен из Ajax Get
-
11-12-2019 - |
Вопрос
можно кэшировать частичный вид в 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 отображается, если вы не хотите, чтобы имя не было сохранено.