ASP3.0中的流量控制能力

來源:互聯網
上載者:User
asp3|控制


    隨著PHP4.0和JSP技術的推出以及IIS中不斷出現的重大的安全問題,MicroSoft的ASP的市場彷彿是變的狹窄了,但是MicroSoft是不會輕言放棄的,於是在ASP2.0的基礎上推出了ASP3.0,增加了一些新的功能:新的流量控制能力、Data Shaping技術(請參考:http://www.aspcn.com/showarticle.asp?id=28)、無指令碼 ASP 、更多的組件選擇、xml的支援、指令碼組件、ASP指令碼代碼的加密技術等等。其實筆者認為沒有多大的改變、或者我對於ASP3.0瞭解的還是太少了(事實上我認為微軟可能放棄了ASP,而是把目光轉向了"ASP+",ASP+目前還處於測試階段,但是筆者從一些國外網站的介紹來看,嘿嘿,我們的下一個作用於Win平台上的東西可能就是ASP+了,所以ASP3.0才沒有多大的改變),不過話說回來,對於那些使用Win系統平台的使用者,我還是建議大家使用ASP,所以在下面給大家介紹了"ASP3.0中的流量控制能力"。

  ASP3.0中的流量控制技術其實是指程式流,說的通俗一點就是程式的流程,ASP3.0中有了兩種新的流量控制方法:"Server.Transfer"和"Server.Execute",我將就這兩種方法中的一種粗略的介紹給大家,為了具體的顯示其功能,我給大家對比了Response.redirect同Server.Transfer的運用!
   一般會使用response.redirect這條語句進行地址轉向,ASP3.0提供了一種新的方法給我們,這種方法更加高效。讓我們先來看看response.redirect和Server.Transfer分別是如何Run的!

  response.redirect其實上是當伺服器碰到這條語句時發送一條指令(包含新的地址)給瀏覽器,然後讓瀏覽器去發送http請求,請求response.redirect後面的那個新的http地址,流程如下:
   瀏覽器ASP檔案請求->伺服器執行->遇到response.redirect語句->伺服器發送response.redirect後面的地址給客戶機端的瀏覽器->瀏覽器請求執行新的地址(伺服器返回的Response.Redirect後面的地址)這就是一個小小的Response.Redirect的全部過程,不看不知道,一看嚇一條!它有這麼多的過程,真恐怖... ...,而ASP3.0中的Server.Transfer語句當接受地址後是直接轉向後面的地址,流程如下:
   瀏覽器ASP檔案請求->伺服器執行->遇到Server.Transfer語句->伺服器轉向新的檔案。
這樣就少了一個流程了!也縮短了伺服器->客戶機->伺服器互相訪問的時間!但是值得提醒你注意的一點的是Server.transfer中帶的地址最好是html檔案或asp檔案,不要是第三方載入的東西,比如說PHP,如果那樣的話,程式是不能正常執行的,因為轉向的檔案被直接送給ASP的引擎解析了(唉,微軟的東西教人如何說呢?不知道這點是沒有考慮到,還是微軟的霸氣),你將得不到結果的!在下面的程式中,我們將像你展示這點
讓我們看看下面的代碼:
(檔案:Response.asp:)
<!-- 代碼開始 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="Author" CONTENT="蒲俊傑">
<META NAME="Keywords" CONTENT="ASP,www.aspcn.com">
<title>Response測試</title>
</head>
<body>
<%Response.Redirect "test.php"%>
</body>
</html>
<!-- 代碼結束-->
test.php檔案的代碼如下:
<!-- 代碼開始 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="Author" CONTENT="蒲俊傑">
<META NAME="Keywords" CONTENT="ASP,PHP,www.aspcn.com">
<title>Response測試</title>
</head>
<body>
<? echo "<center>這是一個測試,你好呀!歡迎你訪問我們的網站<a href=http://www.aspcn.com>www.aspcn.com</a></center>" ; ?>
</body>
</html>
<!-- 代碼結束-->
   好了,我們測試一下上面的代碼,看到結果了嗎?再讓我們來看看Server.Transfer的運用語句,代碼如下:
Server.asp(其實直接套用Response.asp就可以了):
<!-- 代碼開始 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="Author" CONTENT="蒲俊傑">
<META NAME="Keywords" CONTENT="ASP,www.aspcn.com">
<title>Response測試</title>
</head>
<body>
<%Server.Transfer "test.php"%><!-- 注意這條語句 -->
</body>
</html>
<!-- 代碼結束-->
   執行一下Server.asp!咦,怪了,什麼都沒有嗎!但是你看看被IE解釋後的代碼,代碼如下(注意千萬不要被我下面的使用在html中的備註陳述式搞糊塗了):
"###################################################(代碼開始)
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="Author" CONTENT="蒲俊傑">
<META NAME="Keywords" CONTENT="ASP,www.aspcn.com">
<title>Response測試</title>
</head>
<body>
<!-- 代碼開始 -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META NAME="Author" CONTENT="蒲俊傑">
<META NAME="Keywords" CONTENT="ASP,www.aspcn.com">
<title>Response測試</title>
</head>
<body>
<? echo "<center>這是一個測試,你好呀!歡迎你訪問我們的網站<a href=http://www.aspcn.com>www.aspcn.com</a></center>" ; ?><!-- 注意這條PHP語句被看到了 -->
</body>
</html>
<!-- 代碼結束--><!-- 注意這條語句 -->
</body>
</html>
"###################################################(代碼結束)
   test.php檔案被當作一個文字檔include進來了,但是如果我們把原來的Server.asp檔案中的Server.Transfer "test.php"換成 Server.Transfer "Response.asp"在Try一下(這樣做,其實是讓你瞭解ASP的引擎對於Server.Transfer的具體的解析情況),看看結果?是不是同我們直接運行Response.asp的結果一樣???
   我不知道,你現在對於Server.Transfer的用法糊塗沒有?我都有一點糊塗了!但是不要忘了我寫這篇東西的關鍵:Server.Transfer比Response.Redirect好,因為前者少了一個流程,加快了速度的,節約了時間,後者我就不說了,只是提醒你一點的就是Server.Transfer到底該用在什麼條件下(前面很清楚了,我不多說了,再說我也就糊塗了,你多Try幾下就明白了)




相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

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 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。