Server.Transfer НЕ более полезен в производительности. Лучшая производительность зависит от того, что на самом деле выполняется на странице и от того, где вы вызываете передачу или перенаправление, но различия настолько малы, что вам нужнососредоточить внимание на том, что фактически делает transfer
против redirect
.
Transfer
добавляет много проблем, которые добавляют к вашей навигации от страницы к странице, например, пользователь видит то же имя страницы, ноСодержание отличается. Transfer
также не может обрабатывать отправлять обратно функции asp.net. - Когда вы используете
transfer
, вам всегда нужно знать, на каждой странице назад, на какой страницеВы показываете следующее, потому что вы всегда загружаете одну и ту же кодовую страницу. - Если вы много используете
Transfer
, то сервер для каждой страницы должен загрузить и запустить 2 разных кода страницы для одного и того же результата.
Redirect
с другойhand - это метод навигации и отображения результатов при обработке пользовательского ввода.Его чистый код на второй странице работает без проблем, обратной передачи и всего того, что работает одинаково.
Я предлагаю всем, кто редко использует Server.Transfer
.
Вот пример, которыйПередача заставляет думать сложнее и медленнее.Если у вас есть работа, и затем вы показываете результат, и, скажем, эта работа занимает несколько секунд, если вы выполняете Transfer, для каждого поста назад или перезагружаете, работа должна быть запущена снова!.
protected void Page_Load(object sender, EventArgs e)
{
// function works
Thread.Sleep(10000);
Server.Transfer("Page2.aspx");
}
Второй случай с перенаправлением, работа будет выполнена один раз и больше не вызываться, пользователь переместится на страницу результатов.
protected void Page_Load(object sender, EventArgs e)
{
// function works
Thread.Sleep(10000);
Response.Redirect("Page2.aspx");
}
Я думаю, что не нужно слишком много разговоров, если вы будете практиковать их немного, вы сможете увидеть много мыслей и разных на реальных страницах.