Какой из них лучше Server.Transfer и Response.Redirect
Какой из них лучше, Server.Transfer
или же Response.Redirect
? Я ищу объяснение этому.
2 ответа
У них разные функции. Определение лучшего зависит от того, что вы пытаетесь сделать.
Response.Redirect сообщает клиенту посетить новый адрес, который может быть где угодно.
Server.Transfer перенаправляет запрос (возможно, сохраняя строку запроса) на другую страницу на том же сервере.
Если ваш критерий сокращает ненужные накладные расходы, учитывая, что новая страница находится на том же сервере, Server.Transfer - это тот метод, который вам нужен.
Это зависит от ваших требований.
Предположим, что вы находитесь на странице 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
Может работать только для одних и тех же доменных страниц (на одном сервере)
Он обходит любую аутентификацию на странице, на которую вы переводите
Теперь вы можете сами принять решение, какое из них лучше в соответствии с вашими требованиями.