Response.Redirect、 Server.Transfer、Server.Execute三者区别
生活随笔
收集整理的這篇文章主要介紹了
Response.Redirect、 Server.Transfer、Server.Execute三者区别
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
(1)Response.Redirect簡(jiǎn)單地發(fā)送一條消息到瀏覽器,告訴瀏覽器定位到另一個(gè)頁(yè)面。client->server->client->server->client (2)Server.Transfer也是將用戶引導(dǎo)到另外一個(gè)頁(yè)面,并返回客戶端。 client->server->server->client (3)Server.Execute執(zhí)行一個(gè)頁(yè)面,并返回結(jié)果。在asp.net中被Transfer代替 使用Server.Transfer優(yōu)點(diǎn): 首先,通過(guò) Server.Transfer 引導(dǎo)到另一頁(yè)面保留服務(wù)器資源,通過(guò)更改服務(wù)器端"焦點(diǎn)"和傳輸請(qǐng)求來(lái)代替告訴瀏覽器重定向,這就意味著你不會(huì)占用較多的 HTTP 請(qǐng)求,因此這可以減輕服務(wù)器的壓力,使你的服務(wù)器運(yùn)行更快。不過(guò), "transfer" 只能在同一服務(wù)器端的同一站點(diǎn)間運(yùn)行,所以你不能用 Server.Transfer 將用戶重定向到另一服務(wù)器上的站點(diǎn)。要重定向到服務(wù)器以外的站點(diǎn),只有 Response.Redirect 能辦到。?
其次,Server.Transfer 保留瀏覽器端的 URL 地址。這對(duì)流線型的數(shù)據(jù)輸入很有幫助,不過(guò)這也增加了調(diào)試的復(fù)雜度。 最后,Server.Transfer 方法還有另一個(gè)參數(shù)——"preserveForm"。假如你設(shè)置這個(gè)參數(shù)為 True,比如:Server.Transfer("WebForm2.aspx", True), 那么 query string 和任何 form 變量都會(huì)同時(shí)傳遞到你定位的頁(yè)面。?
例:WebForm1.aspx 有一個(gè)文本框名為 TextBox1,你利用 preserveForm 為 True 傳遞到 WebForm2.aspx,那么在WebForm2.aspx頁(yè)面可以用 Request.Form("TextBox1") 來(lái)取得文本框的值。
這種技術(shù)對(duì)向?qū)降亩囗?yè)面輸入很有用,不過(guò)這里有一個(gè)你必須注重的問(wèn)題是,當(dāng)你使用 preserveForm 參數(shù)時(shí),ASP.NET 有一個(gè) bug,通常情況下,當(dāng)試圖傳遞 form 或 query string 值時(shí)會(huì)發(fā)生錯(cuò)誤。
非官方的解決辦法是在傳遞的目的頁(yè)面中設(shè)置 EnableViewStateMac屬性設(shè)置為false。
本文轉(zhuǎn)自 韜光星夜 51CTO博客,原文鏈接:http://blog.51cto.com/xfqxj/477101,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
其次,Server.Transfer 保留瀏覽器端的 URL 地址。這對(duì)流線型的數(shù)據(jù)輸入很有幫助,不過(guò)這也增加了調(diào)試的復(fù)雜度。 最后,Server.Transfer 方法還有另一個(gè)參數(shù)——"preserveForm"。假如你設(shè)置這個(gè)參數(shù)為 True,比如:Server.Transfer("WebForm2.aspx", True), 那么 query string 和任何 form 變量都會(huì)同時(shí)傳遞到你定位的頁(yè)面。?
例:WebForm1.aspx 有一個(gè)文本框名為 TextBox1,你利用 preserveForm 為 True 傳遞到 WebForm2.aspx,那么在WebForm2.aspx頁(yè)面可以用 Request.Form("TextBox1") 來(lái)取得文本框的值。
這種技術(shù)對(duì)向?qū)降亩囗?yè)面輸入很有用,不過(guò)這里有一個(gè)你必須注重的問(wèn)題是,當(dāng)你使用 preserveForm 參數(shù)時(shí),ASP.NET 有一個(gè) bug,通常情況下,當(dāng)試圖傳遞 form 或 query string 值時(shí)會(huì)發(fā)生錯(cuò)誤。
非官方的解決辦法是在傳遞的目的頁(yè)面中設(shè)置 EnableViewStateMac屬性設(shè)置為false。
本文轉(zhuǎn)自 韜光星夜 51CTO博客,原文鏈接:http://blog.51cto.com/xfqxj/477101,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者
總結(jié)
以上是生活随笔為你收集整理的Response.Redirect、 Server.Transfer、Server.Execute三者区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java EE官方文档汇总
- 下一篇: 网络工程师必备知识:苹果MAC系统下使用