再说防止重复提交 - TOMMYHU - 专注互联网开发及运营技术,提供相关资料及软件下载,奇趣网络时事评论!
Sep 27

再说防止重复提交 不指定

tommyhu , 22:59 , ASP.NET , Comments(0) , Trackbacks(0) , Reads(3367) , Via Original Large | Medium | Small
问题背景:
无论是电子商务中的订单,留言等,还是企业web业务系统中的查询,保存,页面中的提交总会出现响应速度慢,这时用户会不耐烦的重复点击按钮,造成重复提交的问题!
临时解决方案:
我通常使用的防止重复提交的最简单方法:
(1)点击提交按钮后,立即禁用提交按钮;
(2)或者在客户端脚本中定义一个变量,提交后改变这个变量值,再次单击按钮,判断变量是否和初始值一致,如不同则不提交而直接返回;
但是上面两种方法都无法防止用户F5浏览器刷新。
靠谱的解决方案:


      AvoidRepeatSubmit-通过Javascript避免客户端重复提交请求
      Web项目上线后当访问压力增大时,处理速度往往比在测试环境时慢好多倍。当用户点击页面控件提交请求半天没反应时,他就会不停的重复点击该控件,造成请求的重复提交,这个时候很多问题就暴露出来了。上个项目是用Asp.net+C#开发的,为了避免这个重复提交问题,在以前的一个js版本上做了一些完善,虽然技术比较传统,但还是能做为应急之用。
      Asp.net客户端提交的路径分为以下几种:
   a) 点button提交 -> form的onsubmit事件
   b) 点button提交 -> button的WebForm_DoPostBackWithOptions ->form的WebForm_OnSubmit(包含了自定义的submit事件)
   c) 点button     -> __doPostBack -> 运行form的onsubmit –> submit
   d) 点button     -> WebForm_DoPostBackWithOptions -> __doPostBack -> 运行form的onsubmit(WebForm_OnSubmit) –> submit
Highslide JS

该js的代码如下:

▲返回顶部
Last modified by tommyhu on2012/09/27 23:00

Add a comment

Nickname

emotemotemotemotemotemotemotemotemotemotemotemotemotemotemotemot