asp.net – 当我按浏览器BACK按钮会发生什么?

考虑这种情况:

>我访问了使用ASP.NET构建的网站页面。该页面一个包含ASP.NET服务器控件的简单aspx页面
>我点击了一个链接,将我带到同一网站上的其他页面
>我点击浏览器的BACK按钮。

问题:页面生命周期会发生什么?是否发生所有事件或浏览器只显示页面的缓存版本而不发出任何请求?

解决方法

我认为最好的答案是:这取决于浏览器,特别是在post / postback之后。

较老的浏览器用于弹出一个确认对话框,使“页面包含将被重新提交的POST数据”,您可以继续(重新提交)或取消。因为在ASP.NET WebForms中发生的一切都是FORM元素(ViewState,事件等)的一部分,这将导致整个生命周期被重复。

当然,这不会造成重复提交的麻烦,所以很多网站不得不提出解决方法解决dupe问题,而今天大多数浏览器只是从缓存中提取页面

…这是除非你重写缓存控制头,强制浏览器不要将页面存储在缓存中。显然,在这种情况下,它无法从缓存中检索,所以通常会被重新提交。但是,这又取决于浏览器 – 例如,某些浏览器不允许通过SSL重新提交,所以如果这是使用的协议,那么用户只会看到一条消息,指出该页面已过期/不能所示。

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

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....