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

 

该js的代码如下:

Code

    效果如下:

    image

    示例Demo代码下载AvoidRepeatSubmit.

posted on 2012-09-27 14:48  野文  阅读(2382)  评论(5编辑  收藏  举报