Server.Transfer方法,Server.Execute方法和Response.Redirect方法有什么异同

(1)Server.Transfer方法: 
Server.Transfer("m2.aspx");//页面转向(服务器上执行). 
服务器停止解析本页,保存此页转向前的数据后,再使页面转向到m2.aspx, 
并将转向前数据加上m2.aspx页结果返回给浏览器,注意的是浏览器的地址没发生变化
还是m1.aspx,

(2)Server.Execute方法: 
Server.Execute("m2.aspx"); 
服务器保存此页转向前的数据后,使页面转向到m2.aspx执行, 
再返回本页继续执行.再将三者结果合并后返回给浏览器.

以上都是服务器端页面转向所以浏览器不出现页更改记录(显示的地址不会改变). 
因此,如果用户刷新此页,也许会出现一些其它意外情况. 
此类页转向,可完成一些其它功能,比如访问到前一页面中的服务端控件.

(3)Response.Redirect: 
当浏览器请求aspx页面时,碰到Redirect(url)方法, 
相当于告诉浏览器,你先需访问某页面,于是浏览器再向服务器发送一个到此页面的请求. 
重定位是通过浏览器执行的,在服务器和浏览器之间会产生额外的往返过程。 
在网络状况不是很好的情况下,两次请求会大大的 
降低应用程序的反应速度,甚至占用多余的带宽. 转换完后浏览器地址将改变,显示为asp2.aspx

总结: 
在网络状态较好的情况下,Redirect(url)方法效率最高!! 
Server.Transfer方法和Server.Execute方法最灵活!! 
Server.Execute方法占用资源最多.

时间: 2024-12-26 05:11:09

Server.Transfer方法,Server.Execute方法和Response.Redirect方法有什么异同的相关文章

java——多线程——单例模式的static方法和非static方法是否是线程安全的?

单例模式的static方法和非static方法是否是线程安全的? 答案是:单例模式的static方法和非static方法是否是线程安全的,与单例模式无关.也就说,如果static方法或者非static方法不是线程安全的,那么不会因为这个类使用了单例模式,而变的安全. 闲话休说,看代码: import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class TestSingl

彻底理解了call()方法,apply()方法和bind()方法

javascript中的每一个作用域中都有一个this对象,它代表的是调用函数的对象.在全局作用域中,this代表的是全局对象(在web浏览器中指的是window).如果包含this的函数是一个对象的方法,this指向的就是这个对象.因此在上面例子中就不用直接写对象的名字,而是使用this代替它,例如: var human = { name: '霍林林', sayName: function(){ console.log(this.name); } } human.sayName(); 下面这个

Html.Partial方法和Html.RenderPartial方法

分布视图 PartialView 一般是功能相对独立的,类似用户控件的视图代码片段,可以被多个视图引用,引用方式如下. 1,Html.Partial方法和Html.RenderPartial方法 静态类System.Web.Mvc.Html.PartialExtensions,利用扩展方法,扩展了System.Web.Mvc.HtmlHelper,因此有了Html.Partial方法,方法返回值为MvcHtmlString 静态类System.Web.Mvc.Html.RenderPartial

jQuery hover()方法和jQuery toggle()方法用法示例

jQuery hover()方法和jQuery toggle()方法是两个合成事件,类似ready()方法,都属于jQuery自定义的方法.下面来讲解这两个方法的属性和如何使用. 一.hover()方法:语法结构为: hover(enter,leave).用于模拟光标悬停事件.当光标移动到目标元素上时,会触发指定第1个函数(enter);当移出这个元素时,会触发第2个函数(leave). 下面是一段示例代码: $(function(){ $("#panel h5.head").hove

synchronized 修饰在 static方法和非static方法的区别

Java中synchronized用在静态方法和非静态方法上面的区别 在Java中,synchronized是用来表示同步的,我们可以synchronized来修饰一个方法.也可以synchronized来修饰方法里面的一个语句块.那么,在static方法和非static方法前面加synchronized到底有什么不同呢?大家都知道,static的方法属于类方法,它属于这个Class(注意:这里的Class不是指Class的某个具体对象),那么static获取到的锁,是属于类的锁.而非stati

重定向语句Response.Redirect()方法与Response.RedirectPermanent()对搜索引擎页面排名的影响

在ASP.NET中,开发人员经常使用Response.Redirect()方法,用编程的手法,将对老的URL的请求转到新的URL上.但许多开发人员没有意识到的是,Response.Redirect()方法发的是个 HTTP 302 Found (临时转向) 回复,会在用户尝试访问老的URL时,导致多余的HTTP往返.搜索引擎一般不会跟随多个重新转向跳转,意味着使用一个临时转向会负面影响你的网页排名.       ASP.NET 4引进了一个新的Response.RedirectPermanent

在MVC里面使用Response.Redirect方法后记得返回EmptyResult

在ASP.NET MVC中我们很多时候都会在拦截器和Controller中直接使用Response.Redirect方法做跳转,但是实际上Response.Redirect方法执行后ASP.NET并不会立即结束当前请求的执行,而是要过一段时间才会终止当前请求的执行,然后命令客户端浏览器去访问Response.Redirect方法中传入的新的URL地址.这会导致一个问题,有时候我们希望Response.Redirect方法执行后后面的代码就取消执行了,因为这并不是我们预期的行为,当代码执行了Res

在类中使用Response.Redirect()方法

Insus.NET稍作演示,能正常运作.可以往下慢慢看来.首先是user类: 然后,我们在一个网页,如Default.aspx.cs实例化上面的User类. 可以看看实时操作演示: 在类中使用Response.Redirect()方法

static方法和非static方法的区别

●生命周期(Lifecycle):静态方法(Static Method)与静态成员变量一样,属于类本身,在类装载的时候被装载到内存(Memory),不自动进行销毁,会一直存在于内存中,直到JVM关闭.非静态方法(Non-Static Method)又叫实例化方法,属于实例对象,实例化后才会分配内存,必须通过类的实例来引用.不会常驻内存,当实例对象被JVM 回收之后,也跟着消失. ● 在内存中存储位置静态方法和静态变量创建后始终使用同一块内存,是连续的.非静态方法会存在于内存的多个地方,是离散的.