防刷新重复提交、防后退方法

转载 2011年01月20日 15:32:00

http://www.blueidea.com/tech/program/2006/3162.asp

 

网页防刷新重复提交、防后退解决方法

提交后禁用提交按钮(大部分人都是这样做的)

如果客户提交后,按F5刷新怎么办?

使用Session

在提交的页面也就是数据库处理之前:

 

 

数据处理完后,修改session("ok")=false。

数据处理成功马上Redirect到另外一个页面

操作后刷新的确是个问题,你可以使用跳转页面、关闭本页面,如果是有参数据条件来控制的,那就应该好做了,可以直接修改window.location的值,把参数全部改掉,这样就差不多了。

缺点:简单地运用Response.Redirect将不再有效,因为用户从一个页面转到另一个页面,我们都必须用客户端代码清除location.history。注意,这种方法清除的是最后一个访问历史记录,而不是全部的访问记录。 点击后退按钮,再点击后退按钮,你可以看到这时打开的是本页面之前的页面!(当然,这是在你的客户端启用了JavaScript功能的条件下。)

如果客户按后退,怎么办?

防止网页后退--禁止缓存

我们在进行数据库添加操作的时候,如果允许后退,而正巧有刷新了页面,就会再次执行添加操作,无疑这不是我们需要的,像一般网上很多禁止缓存的代码,有时并不可靠,这时你只要在操作的页面加上就可以了,在网页的里指定要定向的新页,再点后退,看是不是不会再退到刚才的操作页面了,实际上已经把这个历史给删除了

ASP:
Response.Buffer = True   
Response.ExpiresAbsolute = Now() - 1   
Response.Expires = 0   
Response.CacheControl = "no-cache"

ASP.NET:
Response.Buffer=true;
Response.ExpiresAbsolute=DateTime.Now.AddSeconds(-1);
Response.Expires=0;
Response.CacheControl="no-cache";

究竟怎样才能"禁用"浏览器的后退按钮?或者“怎样才能防止用户点击后退按钮返回以前浏览过的页面?”

遗憾的是,我们无法禁用浏览器的后退按钮。

防止网页后退--新开窗口

用window.open弹出表单页面,点提交后关闭该页;处理提交的ASP页也是用弹出,设定表单的target,点提交时window.open("XXX.asp","_blank"),然后用JS来提交表单,完成后window.close();
简单的说,就是提交表单的时候弹出新窗口,关闭本窗口。对于window.open()打开的窗口怎么后退?能后退到哪里去?

呵呵,罗嗦了一堆废话,知道怎么处理了么?混合运用客户端脚本和服务器端脚本。

if session("ok")=true then
   response.write "错误,正在提交"
   response.end
end if

防刷新重复提交、防后退方法

提交后禁用提交按钮(大部分人都是这样做的) 如果客户提交后,按F5刷新怎么办? 使用Session 在提交的页面也就是数据库处理之前: if session("ok")=true then respo...
  • fengrengui
  • fengrengui
  • 2006年10月22日 11:19
  • 685

aspnet网页防止后退或刷新造成重复提交

aspnet网页防止后退或刷新造成重复提交 设网站有两个网页,提交第一页后转到第二页,这时,如用通过浏览器的后退功能,会使浏览器再次呈现第一页,这就可能出现重复提交,另外,转到第二页后,刷新浏览...
  • jhycjhyc
  • jhycjhyc
  • 2015年01月15日 14:51
  • 5308

网页如何防止刷新重复提交与如何防止后退的解决方法

提交后禁用提交按钮(大部分人都是这样做的) 如果客户提交后,按F5刷新怎么办? 使用Session 在提交的页面也就是数据库处理之前: if session("ok")=true then ...
  • gaowenhui2008
  • gaowenhui2008
  • 2015年03月16日 17:20
  • 1675

网页防刷新重复提交、防后退解决办法

 网页防刷新重复提交、防后退解决办法方法一、提交后 禁用提交按钮(大部分人都是这样做的)如果客户提交后,按F5刷新怎么办?方法二、使用Session在提交的页面也就是数据库处理之前if session...
  • blade2001
  • blade2001
  • 2008年12月13日 15:51
  • 443

网页防刷新重复提交、防后退解决方法

====第一篇==开始========================================================================== 总结: 重复提交、重复刷新、...
  • wcg83
  • wcg83
  • 2007年11月23日 18:58
  • 2605

防止页面重复提交及后退方法

1.提交后禁用提交按钮(大部分人都是这样做的)如果客户提交后,按F5刷新怎么办?2.使用Session在提交的页面也就是数据库处理之前:  数据处理完后,修改session("ok")=false。3...
  • lanwilliam
  • lanwilliam
  • 2008年05月13日 09:44
  • 878

页面防重复提交方法总结

有时候我们的程序执行比较慢,而且我们页面也不怎么友好,没什么提示信息。操作人员以为没有点击提交按钮,就会再一次点击提交。这会导致很多问题出现。下面介绍三种防重复提交的方法。 1、提交按钮置disab...
  • tengzhaorong
  • tengzhaorong
  • 2013年11月19日 15:25
  • 4283

Asp.net中防刷新重复提交、防后退方法

Asp.net中防刷新重复提交、防后退方法 简单操作方法防后退和刷新 Page_Load中加入    Response.Cache.SetNoStore();    //Session中存储...
  • jjhua
  • jjhua
  • 2007年10月26日 21:53
  • 792

Struts1.x 防刷新重复提交(Token)

Struts1.x 防刷新重复提交(Token)     Token防止刷新页面时造成的页面表单重复提交的问题:  1、首先要通过一个action方法生成Token令牌,生成一个随机数   ...
  • u010802573
  • u010802573
  • 2013年06月19日 10:56
  • 1212

MVC防止F5刷新重复提交数据

Controller代码如下: // // GET: /Home/ [HttpGet, ImportModelStateFromTempData] ...
  • wdxgdiy
  • wdxgdiy
  • 2013年04月19日 10:06
  • 1362
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:防刷新重复提交、防后退方法
举报原因:
原因补充:

(最多只允许输入30个字)