zoukankan      html  css  js  c++  java
  • 解决因页面刷新而导致重复操作的问题

    用过ASP.NET的都知道,按钮操作之后会得到一个新的页面,然后用户通过浏览器的回退按钮可以回到原来的页面时,或者点刷新按钮刷新当前页面时,会显示对话框"不重新发送信息,则无法刷新页面",然后就有个"重试","取消"按钮,通常用户为了刷新页面而点击"重试",这样一点问题就来了,那么页面就会重复发送信息,并且执行先前按钮的操作,比如按钮是添加一行数据,那么刷新之后就会添加重复的数据.好的程序或许会报个提示说什么不能重复添加,甚至出个异常,没有限制的程序可能就任由用户重复的添加数据.这样当然是开发人员不想发生的,除非有极端的用户需求.
    最近学了下HttpModule的内容,可用来解决这个问题.
    这里利用HttpModule在页面请求之前,做一些操作,用一些标记标识每个请求的页面,程序如下,相互学习下.
    首先有个类继承IHttpModule
    NoRepeatOperModule

    第二步,在web.config中配置自定义的HttpModule
    Web.Config配置

    最后还要在asp.cs文件中处理如下,加个属性IsRefreshed,重写基类的OnPreRenderComplete,最后调用在btnTest_Click
    其实可以吧以下作为自定义的Page类,其他页面继承即可
    具体页面实现

    点击btnTest之后会写入一行,此时页面重新生成,点刷新或回退,再点"重试",将不会重复原来的操作.
  • 相关阅读:
    iOS_21团购_地图功能
    Android 完整开源应用大全,完整开源项目
    Java Ant Could not find the main class: org.eclipse.ant.internal.launching.remote.InternalAntRunner. Program
    Java Swing JScrollPane 设置滚动量
    svg defs 进行定义 引用
    Java Swing paint repaint update 方法的关系
    Java Swing jpanel paint方法执行两次的问题
    java Swing 图片缓冲机制
    Spring mvc基本原理
    Java Swing Graphics Graphics2D的一般用法
  • 原文地址:https://www.cnblogs.com/shenba/p/926717.html
Copyright © 2011-2022 走看看