IIS5中的兩種伺服器端網頁重新導向方法

來源:互聯網
上載者:User
iis|伺服器|網頁|iis|伺服器
IIS5中的兩種伺服器端網頁重新導向方法


     在IIS5中提供了兩種伺服器端網頁重新導向(或者說轉向)的方法,

一個是Server.Transfer方法, 另外一個是Server.Execute方法。

說它們是伺服器端重新導向,是因為在不同頁面之間的轉向是直接在伺服器端

完成的, 用戶端只能看到結果,而不能看到轉向的過程。 這同以往我們在IIS4使用的

Response.Redirect 方法是不同的。


     以前, 當我們需要從一個頁面轉向到另外一個頁面的時候,我們一般都會使用

Response對象的Redirect方法, 比如, 在我們的某個需要使用者驗證的頁面,當使用者

沒有登陸的時候, 就轉到使用者登陸頁面,簡單的例子代碼如下:


content.asp

<%
If Session("isLogin")="" Then
 Response.Redirect "Login.asp"
End If

'正常的內容

%>


那麼,其實Response.Redirect方法, 是返回給瀏覽器一個Http Header狀態為302的標記碼,

HTTP 1.0 302 Object Moved
Location URL

這樣,實際上是瀏覽器請求伺服器的content.asp 檔案,content.asp檔案經過處理以後

告訴瀏覽器,你先訪問login.asp檔案, 於是瀏覽器再向伺服器發送一個到login.asp頁面的請求。

所以, 實際上是轉了一個彎。這樣, 當用戶端網路狀況不是很好的情況下,兩次請求會大大的

降低應用程式的反應速度,甚至佔用多餘的頻寬。


特別是,當需要傳遞參數的時候,也會有一些問題。



而在IIS5中, 提供了Server.Transfer和Server.Execute方法。

這兩種方法,都是在伺服器間完成轉向的,因此可以減少用戶端的網路頻寬的佔有,

但是因為伺服器端要儲存程式1的一些狀態,也會消耗一定的記憶體。



那麼Server.Transfer和Server.Execute又有什麼不同呢?

通過例子來說明吧,這裡有兩個檔案,file1.asp和file2.asp

我們都是要在file1.asp裡面轉向到file2.asp


用Tansfer方法時:

file1.asp

<%
Response.Write "File 1 Header<br>"

Server.Transfer "file2.asp"
'到這裡就停止執行下面的語句,轉向了

Response.Write "File 1 Footer<br>"

%>

file2.asp

<%
Response.Write "慈勤強 2"
%>


所有,當我們執行file1.asp檔案時, 我們得到的結果是

File 1 Header
慈勤強

因為,當程式遇到Transfer方法時,會停止執行後面的語句,轉而執行轉向的程式




當使用Execute方法時:




file1.asp

<%
Response.Write "File 1 Header<br>"

Server.Execute "file2.asp"
'到這裡執行file2.asp,完成之後繼續執行剩下的內容

Response.Write "File 1 Footer<br>"

%>

file2.asp

<%
Response.Write "File 2"
%>


所有,當我們執行file1.asp檔案時, 我們得到的結果是

File 1 Header
File2
File 1 Footer

因為,當程式遇到Execute方法時,會執行轉向的程式,完成之後再繼續執行第一頁的剩下的內容。

其實Execute方法就像我們經常寫的子程式一樣,類似於子程式調用。

如下圖所示:






相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。