为什么保存后要关闭页面

我是个VB程序员出身,因此做web新增页面时总喜欢在保存之后,直接切换到编辑页面,因为窗体应用就是这样的。直到今天我才恍然大悟,这样是有问题的。

当页面跳转到编辑页面,如果用户此时刷新页面,之前的新增提交又会执行一遍,造成了重复提交。而且这种提交对于服务端是无法判断的,因为对于它来说就是一次正常的提交。

要避免这种情况发生,最简单的就是提交后,返回成功提示页面,待用户确认后直接关闭页面,不给用户刷新的机会。我想绝大多数WEB程序框架都是这样解决的,但不知是否所有程序员都考虑过为什么会这样,就像我。

其实还有一种情况,就是必须返回到编辑页面,不能关闭页面。比如表单需要上传附件,如果上传页是个单独的页面(我喜欢这样处理)。在上传附件之前,我需要将表单进行一下提交,获得主键之后再自动打开上传页,这样才能保证不造成垃圾附件(如果主表单未进行提交操作)。在打开上传页后(非模式打开)用户在主表单上就可以进行刷新(其实不用用户,因为IE会提示你是否允许弹出页,当你允许后,页面就会刷新),要避免这种情况,就需要重定向了。

真是自报家丑,高手们请一笑而过,望对新手们有所帮助。

猜你喜欢

转载自lynnbond.iteye.com/blog/1090093