当我按下浏览器后退按钮,会发生什么?

考虑以下情况:

  1. 我参观了使用ASP.NET建立了一个网站的页面。 该页面包含ASP.NET服务器控件一个简单的aspx页面。
  2. 我点击了一个链接,带我到一些其他的网页在同一网站上。
  3. 我点击了浏览器的后退按钮。

问:在页面生命周期而言,会发生什么? 确实发生的所有事件或浏览器只显示页面的缓存版本未做任何要求?

--------------解决方案-------------

我认为最好的答案是:这取决于浏览器,尤其是在后/回发。

使用弹出一个确认对话框,效果较旧的浏览器“的页面包含将被重新提交POST数据”,你既可以进行(重新提交),或抵消。 由于一切发生在ASP.NET的WebForms是部分FORM元素(ViewState中,事件等),这会导致重复整个生命周期。

当然,这导致了与重复提交后患无穷,所以很多网站不得不想出变通办法欺骗的问题,而今天大多数浏览器只是获取从缓存中的网页来代替。

......这就是,除非你重写缓存控制头,并强制浏览器不存储页面的缓存。 显然,在这种情况下,它不能被从缓存中检索,所以它通常会结束被重新提交。 但是,再次,它依赖于浏览器 - 例如,一些浏览器将不允许再次提交了SSL,因此,如果这是在使用的协议,那么用户只会看到一个消息,说该页面已过期/不能如图所示。

试想想起来,可能是一个更好的答案是:作为一个网站设计者,你真的不能依赖于从用户的浏览器的任何特定行为单击后退按钮时。 如果重复提交可能产生负面的副作用(如充电信用卡两次),那么你就需要采取适当的措施,以防止这种情况发生。 这是很好的做法呢,因为它是完全可能的,用户只需双击“提交”按钮意外。

我们甚至尝试

Response.ExpiresAbsolute = DateTime.Parse("1/1/1980");
Response.AddHeader("cache-control", "no-store, must-revalidate, private");
Response.AddHeader("Pragma", "no-cache");

要解决这样的问题

该网页将来自高速缓存被显示。

通常所有的事件应该发生,但如果你有一个超级浏览器比它可能发生在显示缓存页面可以把一个断点在你的页面加载 ,看看它是否将要发生

分类:asp.net 时间:2012-01-01 人气:0
本文关键词: asp.net,页面生命周期
分享到:

相关文章

  • Visual Studio中:根据ASP.NET页面生命周期自动重新订购页面事件? 2012-06-09

    什么是根据ASP.NET页面生命周期进行重新排序存在的页面活动的最简便方法是什么? 我试图让我的事件更具可读性,也许可以很容易地滚动到附近的事件顺序. 如果没有简单的方法,是有一个非鼠标的方式来快速切换到页面事件,而无需输入增量搜索的实际情况? --------------解决方案------------- 我唯一​​能想到的是使用代码窗口导航. 为了不使用鼠标就可以按Ctrl + F2,然后打标签,标签的方法降下来,并可以使用arraws,包括打了一封信,在列表中移动,并按下回车键进行选择.

  • 在ASP.net页面生命周期哪个国家控制的访问? 2012-07-17

    在一个ASP.net页面生命周期,在其状态都控制访问? 据我是初始化后,是正确的? --------------解决方案------------- 我认为你是正确的. 这是从MSDN: 初始化 - 所有控件后引发被初始化,所有外观设置都得到了应用. 各个控件的Init事件页面的Init事件之前发生. 使用该事件来读取或初始化控件属性. 你可以检查此链接了解详情:ASP.NET页生命周期概述 这取决于你的意思是什么访问. 通常你会想访问某个时候的OnInit和的OnLoad之间的控制. 下面是介绍

  • 究竟应该是Asp.net页面生命周期的答案吗? 2012-08-21

    这是最常见的问题在采访中了解到什么是asp.net的生命周期? 但得到的答复各不相同,从人到人... Answer1: Init, Load, Render and unload Answer2: preinit, load, prerender, render and unload answer3: preinit, init, initcompleted, preload, load prerender, render and unload... 所以它的答案,我们应该在这方面做的呢? --

  • 举例ASP.net页面生命周期 2013-01-29

    我使用的例子寻找ASP.net页面生命周期事件教程. 我看了MSDN,但不明白. 任何一个环节请的例子吗? --------------解决方案------------- 这里是Asp.Net的链接页面生命周期,其进入详细解释这些方法并给出了描述. 做最好的事情是图片在你的脑袋所取得的来电! http://blogs.thesitedoctor.co.uk/tim/2006/06/30/Complete+Lifecycle+Of+An+ASPNet+Page+And+Controls.aspx#

  • 在.NET 3.5和.NET 4比较ASP.NET页面生命周期 2013-08-05

    它是在ASP.NET页面生命周期存在差异比较.NET 3.5和.NET 4? --------------解决方案------------- 只要你使用ASP.NET Web Forms和MVC不,我认为这是肯定地说,没有,没有. 他们是相同的.

  • Asp.Net页面生命周期 - 什么工具(可能是反射?),使我能够查看哪个页面事件及其事件处理程序的调用顺序 2013-11-15

    1)我知道有很多网站的描述以什么顺序事件Asp.Net页面生命周期中被调用. 但有也一个工具,也许反射,这将使我找出我自己以什么顺序都是网页的事件及其事件处理程序在页面的生命周期叫什么名字? 2)你会说,试图找出引擎盖下到底是怎么回事上是一个好主意或浪费时间吗? 为了澄清 - 我想弄清楚到底是怎么回事时,控件树是建立 - 因此,所有的方法调用,控制所需的树种,叫等所有的事件是构建(我想有几百条或几千行代码只是为了建立一个控件树)编写的. 感谢名单 --------------解决方案------

  • 模拟ASP.NET页面生命周期 2014-04-10

    我有,我想呈现一些自定义控件的HTML一个HttpHandler. 目前我的代码如下所示: Page p = new Page(); var customControl = new CustomControl { Data = data, Blah = blah }; p.Controls.Add(customControl ); context.Response.Write(customControl.RenderToString()); 问题是,customControl(和它们的子控件)需

  • ASP.NET页面生命周期解释 2014-08-24

    有人问我,在接受采访时解释ASP.NET页面生命周期一段时间回来. 我做了解释给他,但他并不满意我的回答. 可能有人解释生命周期我好吗? --------------解决方案------------- 你可以看到: 页面生命周期ASP.NET页生命周期图的示意图, 在ASP.NET快捷概述页面生命周期 ASP.NET页面生命周期(所罗门谢弗) 微软开发网络MSDN 我认为,微软已经做的这个最好的工作. 我只是总结自己的总结,拉出每个事件的最显著的部分. ASP.NET页生命周期概述 你看到部份M

  • ASP.NET页面生命周期 - 在什么时候做一件实施SSL? 2014-11-29

    我应该在什么时候实施SSL在ASP.NET页面生命周期的安全网页? 我的意思是我应该做这里面的Page_Load? 或者是OnInit? 或者一些其他的功能? 我使用下面的代码来执行SSL进行某些页面,但我应该把这个代码? 早些时候,我把它的OnInit函数中,但没有使用ASP.NET的向导工作. 我需要检查它是否是回发或不先? if (!HttpContext.Current.Request.IsSecureConnection) { HttpContext.Current.Response.

  • ASP.NET页面生命周期:方法与事件 2015-03-14

    可有人请向我解释,在ASP.NET页面生命周期方法和事件之间的区别? 谢谢 --------------解决方案------------- 当一个页面运行被执行的一系列方法. 这些方法反过来加注事件可以由用户进行处理以执行各种任务,如初始化控制,填充控制属性,执行控制行为代码等 这里是从MSDN极好流程图,显示所执行的不同的方法,和从这些方法引发的事件: 有关ASP.NET页面生命周期的更多信息,请参阅MSDN上的完整概述: http://msdn.microsoft.com/en-us/lib

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.542 (s). 10 q(s)