Ajax.ActionLink в MVC3 становится медленным после ряда запросов - PullRequest
1 голос
/ 07 декабря 2011

У меня есть это простое приложение 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"
    })

1 Ответ

1 голос
/ 11 декабря 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...