让用户刷新不再重复提交

很多的表单都是采用POST进行提交的。这种提交方式实现起来很容易。

而且效率也比较好。

不过在用户刷新页面的时候,可能会造成重复提交的现象,用户刷新的原因一般都是网页响应太慢了,或者浏览器卡死等情况。这样一刷新,网页又会重新提交,结果一个数据提交了两次。

一般这样浏览器都会确认是不是继续这个提交,但是有的同人误点。

或者是根本不知道这个意思,所以造成界面不友好,不符合体验度等问题,那么怎么让网站用户刷新重复不再提交呢?

使用Session防止重复提交
在提交的页面也就是数据库处理之前添加下面的代码:if session("ok")=true then response.write "错误,正在提交" response.end end if数据处理完后,修改session(“ok”)=false。
这是一个方法之一。

另一个方法
在用户提交信息后,我们不要在POST提交的目标URL返回结果页面,而返回一个302将浏览器重定向到真正的结果显示页,然后浏览器通过GET去获取那个页面。这样之后,用户刷新结果页,或者通过历史记录回到该页面,都不会导致浏览器要重新进行POST,达到了防止用户点刷新按钮时重复提交的问题。

禁止缓存不让后退
如果在操作数据库的时候可以后退,这时刷新了页面,就会再次执行添加操作,怎么办呢?禁止缓存的代码有时并不可靠,这时你只要在操作的页面加上就可以了,在网页的里指定要定向的新页,再点后退,看是不是不会再退到刚才的操作页面了,实际上已经把这个历史给删除了

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";