很多的表单都是采用POST进行提交的。这种提交方式实现起来很容易。而且效率也比较好。不过在用户刷新页面的时候,可能会造成重复提交的现象,用户刷新的原因一般都是网页响应太慢了,或者浏览器卡死等情况。这样一刷新,网页又会重新提交,结果一个数据提交了两次。一般这样浏览器都会确认是不是继续这个提交,但是有的人误点。或者是根本不知道这个意思,所以造成界面不友好,不符合体验度等问题,那么怎么让网站用户刷新不让程序重复提交呢?
我们提供了两种方法解决此类问题。
使用Session防止重复提交
在提交的页面也就是数据库处理之前添加下面的代码:
if session("ok")=true then response.write "错误,正在提交" response.end end if
数据处理完后,修改session("ok")=false。
禁止缓存不让后退
如果在操作数据库的时候可以后退,这时刷新了页面,就会再次执行添加操作,怎么办呢?禁止缓存的代码有时并不可靠,这时你只要在操作的页面加上就可以了,在网页的里指定要定向的新页,再点后退,看是不是不会再退到刚才的操作页面了,实际上已经把这个历史给删除了
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";
事实上让用户刷新不再重复提交还有其他的一些方法,这里就不详述了。
声明:如需转载,请注明来源于www.webym.net并保留原文链接:http://www.webym.net/jiaocheng/37.html