`

Server.Transfer,Response.Redirect 和 Page.Navigate 的区别

阅读更多
Server.Transfer(ASP 3.0 以上) 和 Response.Redirect 在以前的 ASP 中就存在了,Page.Navigate 是 ASP.NET Beta 1 提供的新功能,根本上,Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了.它们之间的主要区别在于:

1、Server.Transfer - 用于把处理的控制权从一个页面转移到另一个页面,在转移的过程中,没有离开服务器,内部控件(如:request, session 等)的保存的信息不变,因此,你能从页面 A 跳到页面 B 而不会丢失页面 A 中收集的用户提交信息。此外,在转移的过程中,浏览器的 URL 栏不变。
流程如下:

  浏览器ASP文件请求->服务器执行->遇到Server.Transfer语句->服务器转向新的文件。

2、Response.Redirect - 发送一个 HTTP 响应到客户端,告诉客户端跳转到一个新的页面,客户端再发送跳转请求到服务器。使用此方法时,将无法保存所有的内部控件数据,页面 A 跳转到页面 B,页面 B 将无法访问页面 A 中 Form 提交的数据。
流程如下:

  浏览器ASP文件请求->服务器执行->遇到response.redirect语句->服务器发送response.redirect后面的地址给客户机端的浏览器->浏览器请求执行新的地址

3、Page.Navigate - Page.Navigate 实现的功能和 Response.Redirect 差不多,它实际上包括三个步骤:首先调用 Response.Redirect,其次依次卸载所有的控件,最后调用 Response.End。

特别要注意的是:在 .NET Beta 2 中,Microsoft 将不再包括 Page.Navigate 这个功能,大家应该现在就用 Response.Redirect 来代替 Page.Navigate,以节省将来升级时的时间。
Server.Transfer方法与Redirect方法相比另一个显著的优势是在页面转换时,Request集合里的内容不会丢失,这给我们编程带来很大的方便,一般的情况下尽可能用Server.Transfer方法(前提是服务器是IIS),Server.Transfer方法更快速,而且因为只在服务器上执行,所以可以和任何浏览器兼容。
切换对象:

1、Response.Redirect可以切换到任何存在的网页。

2、Server.Transfer只能切换到同目录或者子目录的网页,即只能够转跳到本地虚拟目录指定的页面.

数据保密:

1、Response.Redirect后地址会变成跳转后的页面地址。

2、Server.Transfer后地址不变,隐藏了新网页的地址及附带在地址后边的参数值。具有数据保密功能。

传递的数据量(网址后附带的参数):

1、Response.Redirect能够传递的数据以2KB为限。

2、传递的数据超过2KB时,务必使用Server.Transfer。
性能
Server.Transfer可以减少客户端对服务器的请求
分享到:
评论

相关推荐

    WPF 实现导航通过Frame的Navigate函数实现导航

    为了更好地理解和应用这个概念,我们可以创建一个简单的WPF项目,包含两个页面:`MainPage`和`AboutPage`。在`MainPage.xaml`中,添加一个`Frame`控件,并在代码-behind文件中设置其`NavigationUIVisibility`属性为`...

    angular2中router路由跳转navigate的使用与刷新页面问题详解

    本文将详细介绍Angular2中Router路由跳转Navigate的使用方法和解决刷新页面问题的方法。 一、Router.navigate的使用 Router.navigate是Router类的一个方法,主要用来跳转路由。其函数定义为:navigate(commands: ...

    微信小程序出现wx.navigateTo页面不跳转问题的解决方法

    本文实例讲述了微信小程序出现wx.navigateTo页面不跳转问题的解决方法。分享给大家供大家参考,具体如下: 今天在做微信小程序的时候,做的商品购买流程。流程是这样的: 商品展示–>商品详情–>下单页面–>下单详情...

    微信小程序wx.navigateTo方法里的events参数使用详情及场景

    在微信小程序开发中,`wx.navigateTo`方法是一个关键的页面跳转函数,它允许开发者从一个页面导航到另一个页面,而无需关闭当前页面。在2.7.3版本中,`wx.navigateTo`增加了一个名为`events`的参数,这个新特性极大...

    java+selenium 使用Get、Navigate系列方法操作网页

    Navigate方法,属于WebDriver的方法,通过WebDriver对象直接调用即可 例如: //使用get方法来打开慕课网首页 driver.get("https://www.imooc.com"); // 使用navigate().refresh()方法刷新页面 driver.navigate()....

    微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步

    小程序wx.navigateTo路由方法中新增加了events属性,可以用于监听被打开页面发送到当前页面的数据。基础库 2.7.3 开始支持。 相关文档链接:...

    OPC UA 客户端 服务器 标准库源码

    • You should see the node value on the web page after a few seconds. License This repository includes the UA .NetStandard Stack, sample libraries, and sample applications. The UA ....

    怎么理解wx.navigateTo的events参数使用详情

    总之,通过合理利用 `wx.navigateTo` 的 `events` 参数和 `eventChannel` 对象,可以方便地实现页面间的事件通信和数据同步,从而在用户交互过程中控制复杂的业务逻辑,避免数据的不一致和用户体验的不佳。...

    window.navigate 与 [removed].href 的使用区别介绍

    `window.navigate` 和 `window.location.href` 都是JavaScript中实现这一功能的方法,但它们之间存在一些重要的区别。 首先,`window.navigate(url)` 是一个IE浏览器特有的方法,它并不被其他主流浏览器(如Firefox...

    js 返回上一页和刷新

    3. 使用Response对象:Response.Write("<script language=javascript>opener.window.navigate('你要刷新的页.asp');</script>")可以刷新父窗口。 示例代码:<script language="javascript">opener.location.reload...

    ReactNative Navigation路由传递数据到下一个页面

    onPress={() => this.props.navigation.navigate('Detail',{info:movie.title,movie:movie})} 这样,跳转到详情页,可以传递 电影标题 movie.title 和电影对象 movie 在 MovieDetail 页面中 可以拿到这些数据 this....

    解决Angular2 router.navigate刷新页面的问题

    造成这个问题一般是因为我们在<... this._router.navigate(['/detail']); } 解决方法: 1.添加type <button type=button (click)=toDetail()>detail</button> 2.click添加false <button (click)=

    WPF学习之页面跳转

    创建一个新页面,我们需要定义一个继承自`Page`的类,并在XAML中设计页面布局。 ```csharp public partial class MyPage : Page { public MyPage() { InitializeComponent(); } } ``` ```xml <Page x:Class=...

    navigate mysql for Mac

    破解版。 苹果系统 navigate for mysql for Mac 破解版

    有关小程序wx.navigateTo层叠5次限制

    小程序页面的实例使用栈的数据结构存储,栈内元素最多5个(换一种方式说,就是用户最多能点击5次返回),微信小程序能在栈中相对高层某个页面调用其他相对低层的页面实例的方法。...wx.redirectTo 会将栈顶的旧页面出

Global site tag (gtag.js) - Google Analytics