2 или 1 запрос к серверу: в Asp.net Mvc использует вид "- @ Html.Action (" ") -" делает 2 запроса к серверу - PullRequest
0 голосов
/ 08 декабря 2011

Предположим: у меня есть 2 действия (имена действий = A, B) и 2 представления, по одному представлению для каждого действия.

Представление для действия "A" выглядит следующим образом

@*codes*@
    @Html.Action("B")    
    @*calling action 'B' to render its content from view of action'A'*@
@*more codes*@

Теперь мой вопрос: ДЕЙСТВИТЕЛЬНО ли запрашивает содержимое действия «B» с точки зрения действия «A», два запроса к веб-серверу от пользователя (который запросил содержимое действия A) и внутренний запрос от сервера к себе (или что-то в этом роде)).Или, может быть, мне нужно убедиться, что производительность учитывается при вызове действия из представления.

Ответы [ 2 ]

0 голосов
/ 08 декабря 2011

Да, контроллер инициализирован и действие, называемое бит, выполняется в том же контексте.Но нет 2-го http-запроса со всеми подразумеваемыми издержками сети.

Определенно, могут быть некоторые недостатки производительности для выполнения таких действий, но он действительно выполняет профилирование, чтобы увидеть, какой ущерб причинен.

0 голосов
/ 08 декабря 2011

Каждый раз, когда вы визуализируете действие из представления через Html.Action() или Html.RenderAction(), вы создаете совершенно новый запрос к серверу к MVC, который в свою очередь вызывает (большую часть) конвейер запросов по умолчанию , Хотя это не дополнительный веб-запрос, он все же несколько дорог.

Команда MVC рассмотрела возможность сокращения накладных расходов на «запросы дочерних действий» по сравнению со стандартным запросом, но это все еще 2 отдельных выполнения конвейера MVC.

Да, существует значительная разница в производительности RenderAction (медленнее) и RenderPartial (быстрее). RenderAction, по определению, должен запускать весь конвейер ASP.NET для обработки того, что в системе выглядит как новый HTTP-запрос, тогда как RenderPartial просто добавляет дополнительный контент в существующее представление.

- Брад Уилсон, старший разработчик команды ASP.NET MVC

( источник )

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