Какой из них лучше Server.Transfer и Response.Redirect - PullRequest
2 голосов
/ 01 марта 2011

Какой из них лучше, Server.Transfer или Response.Redirect?Я ищу какое-то объяснение этому.

Ответы [ 2 ]

9 голосов
/ 01 марта 2011

Они имеют разные функции.Определение «лучше» зависит от того, что вы пытаетесь сделать.

Response.Redirect сообщает клиенту посетить новый адрес, который может быть где угодно.

Server.Transfer пересылает запрос (возможно, сохраняястрока запроса) на другую страницу на том же сервере.

Если ваш критерий сокращает ненужные накладные расходы, учитывая, что новая страница находится на том же сервере, Server.Transfer - это тот метод, который вам нужен.

0 голосов
/ 01 марта 2011

Это зависит от ваших требований.

Предположим, что вы находитесь на странице page1.aspx и хотите перейти на страницу page2.aspx

Отклик. Прямой сценарий
page1.aspx вызывает Response.Redirect («page2.aspx», false); который отправляет заголовок перенаправления 302 в клиентский браузер, сообщая, что запрошенный (page1.aspx) перемещен в page2.aspx, и веб-приложение завершается. Затем клиентский браузер отправляет запрос на веб-сервер для page2.aspx. IIS сообщает asp_wp.exe для обработки запроса. Программа asp_wp.exe (после проверки аутентификации и выполнения всех других действий по настройке, которые необходимо выполнить при поступлении нового запроса) создает экземпляр соответствующего класса для page2.aspx, обрабатывает запрос, отправляет результат в браузер и завершает работу. В этом случае есть обратный путь к серверу.

Server.Transfer сценарий
page1.aspx вызывает Server.Transfer ("page2.aspx") ;. ASP.NET создает соответствующий класс для page2.aspx, обрабатывает запрос, отправляет результат в браузер и завершает работу.

Обратите внимание, что Server.Transfer снижает нагрузку на клиент и сервер.

Server.Transfer проще для кода, так как вы поддерживаете свое состояние. Информация может передаваться через объект HTTP-контекста между страницами, что устраняет необходимость передавать информацию в строке запроса или загружать ее из базы данных.

Некоторые ограничения Server.Transfer
Он может работать только на тех же страницах домена (на одном сервере)
Он обходит любую аутентификацию на странице, которую вы передаете


Теперь вы можете сами принять решение, какое из них лучше в соответствии с вашими требованиями.

...