У меня есть это простое приложение MVC 3, которое просто имеет два контроллера (Home и Edit), два действия по одному на контроллер и два представления для каждого действия,
каждое из представлений имеет ссылку действия ajax, которая просто запрашивает другое представление и отображает результат в div, проблема в том, что после определенного числа запросов страница становится медленнее, я проверил это с помощью fiddler и заметил что каждый раз, когда я нажимаю ссылку действия, запрос будет отправляться несколько раз в соответствии с уравнением (от 2 до степени n), где n - это сколько раз нажата ссылка, найдите под контроллерами и представлениями.
Контроллеры
public class EditController : Controller
{
public ActionResult Index()
{
return View();
}
}
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Text = "Home Page";
return View();
}
}
А просмотров
Домашняя страница
@{
ViewBag.Title = "Home";
}
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script type="text/javascript">
function myCallback(xhr, status) {
alert(status);
}
</script>
<div id="divLoading" style="display: none">
Loading ...</div>
<div id="divResultText">
@Ajax.ActionLink("Edit Ajax", "Index", "Edit", null, new AjaxOptions
{
HttpMethod = "Get",
OnComplete = "myCallback",
UpdateTargetId = "divResultText",
LoadingElementId = "divLoading"
})
</div>
Редактировать вид
@{
ViewBag.Title = "Edit";
}
@Ajax.ActionLink("Home", "Index", "Home", null, new AjaxOptions
{
HttpMethod = "Get",
UpdateTargetId = "divResultText",
LoadingElementId = "divLoading"
})