在浏览网页时,如果用户按F5或者点击了右键中的刷新命令,浏览器会弹出一个对话框,提示用户是否重新发送以前提交的信息,如果我们选择了重试,那么浏览器会把提交前的信息重复提交到服务器。在很多时候,我们并不希望用户点击了重试后我们的服务器再重新处理一遍数据,因为这样会造成重复处理数据。
一个比较直观的例子:
类似于一个付款操作,如果用户在付完款后再刷新一次付款页面,我们服务器就会再处理一次付款操作,那么就相当于用户付了两次款,这样的情况是决对不能出现的。
那么我们要怎么来防止用户重复提交数据呢?方法是很多的,本章我们仅讲解一个在服务器端处理的思路。
思路如下:
在用户提交订单后,我们用一个Session或者一个ViewState来存储是否处理的状态。然后在每次处理订单前我们都判断一下这个Session或者ViewState存储的状态值,如果状态值为成功处理的,那么我们不再处理该订单,而是直接转到成功处理提示的页面。s
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf】
打赏
扫码打赏,您说多少就多少