2013-08-30 2 views
4

Server.Transfer() & Response.Redirect(), до сих пор хорошо со многими учебниками/подробностями по этой теме. Однако недавно я заметил в Apress book: Pro Asp.net 4 in C# 2010, что упоминалось, что Server.Transfer() на самом деле быстрее.Аспекты производительности Server.Transfer() с Response.Redirect()

Многие учебники/дискуссии на эту тему хороши, но большинство из них, похоже, не проливают свет на который быстрее.

Таким образом, в связи с этим ::

До сих пор я только знаю, что нет обзорных экскурсий, участвующих в server.Transfer(). Но каковы различные этапы этого процесса в оба конца обоих этих методов, которые создали разницу в производительности ?? Кроме того, Какие другие соображения или функции, которые делают Server.Transfer() быстрее ??

Если нет какой-либо другой функции, отличной от пояснения по кругообороту, действительно ли это будет иметь большое значение с точки зрения скорости?

ответ

2

Но каковы различные этапы в этом процессе кругового путешествия в обоих методах, которые создали разницу в производительности?

  • на Server.Transfer

    1. целевая страница начинает выполнение
  • на Response.Redirect

    1. (обычно) HTTP 302 выдается клиент (задержка сети)
    2. клиент получает ответ и выдает запрос на сервер (сетевой задержки)
    3. сервер обрабатывает запрос, пройдя через его возможных модулей (аутентификации, авторизации, URL переписывания, и т.д. ...)
    4. asp.net обрабатывает некоторые из его событий (begin_request, некоторые обработки авторизации)
    5. вы воспроизводимые к шагу 1 из Server.Transfer, целевая страница начинает выполнение

Кроме того, каковы другие соображения или функции, которые делают Server.Transfer() быстрее?

Каждый шаг выше сам по себе является функцией, которая делает Server.Transfer быстрее.

Если нет какой-либо другой признак, кроме туда и обратно объяснения, это будет действительно сделать большой разницы в скорости?

Разница просто огромная. Server.Transfer - это обработка памяти и миллисекунды, ответ.Редирект - это время ожидания сети и секунды.

Но выбор между Server.Transfer и Response.Redirect зависит не только от производительности, это зависит от вашей цели: изменение URL-адреса в клиентской панели навигации или сохранение контекста запроса (данные формы, заголовки, ...) для обработка, обработка возможного обновления от клиента

+0

Получил идею. Последняя 5-я строка, в которой вы использовали Network latency и т. Д., Действительно интересна. –

Смежные вопросы