zoukankan      html  css  js  c++  java
  • Server的Transfer和Response的Redirect

    在实现页面跳转的时候,有些人喜欢用Response.Redirect,而有些人则喜欢用Server.Transfer。大部分时间似乎这两种方法都可以实现相同的功能,那究竟有区别吗?

            查了些文档,发现两者区别还是很明显的。根本上,Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了,因此会有以下区别:
    1. Server.Transfer只能够转跳到本地虚拟目录指定的页面,而Response.Redirect则十分灵活; 2. Server.Transfer可以将页面参数方便传递到指定页面; 3. 使用时,Server.Transfer跳到别的页面后,浏览器显示的地址不会改变,有时反而会造成误会,当然也有些场合需要这样的效果; 4. Server.Transfer可以减少客户端对服务器的请求;

    暂时想到只是这些,是否还有其它

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


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

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


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

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

  • 相关阅读:
    log4j配置详解
    elasticsearch6.0版本安装head插件
    JAVA笔记-如何将百万级数据高效的导出到Excel表单
    抽象方法为什么不能被private与static修饰
    vue利用promise实现连续弹框
    vue代码片段
    h5元素高度超出屏幕但不滚动
    css3动画
    vue 引入静态图片404
    ios windows.open()不能打开
  • 原文地址:https://www.cnblogs.com/lidj/p/3461219.html
Copyright © 2011-2022 走看看