|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
在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 "小雨在线" %> 所有,当我们执行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方式就像我们常常写的子程序相同,类似于子程序调用。 返回类别: 教程 上一教程: ASP内置对象REQUEST对象详解 下一教程: IP地址分段计算 您可以阅读与"IIS5中的两种服务器端网页重定向方式"相关的教程: · 在服务器端控制网页 · 个人经验:使用ASP尽量减少服务器端的工作量 · 制作一个简朴的服务器端控制 · ASP通过XMLDOM在服务器端操作XML文件的主要方式和实现 · ASP中存储过程调用的两种方法,以及不采用存储过程的方法比较 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |