我是个VB程序员出身,因此做web新增页面时总喜欢在保存之后,直接切换到编辑页面,因为窗体应用就是这样的。直到今天我才恍然大悟,这样是有问题的。
当页面跳转到编辑页面,如果用户此时刷新页面,之前的新增提交又会执行一遍,造成了重复提交。而且这种提交对于服务端是无法判断的,因为对于它来说就是一次正常的提交。
要避免这种情况发生,最简单的就是提交后,返回成功提示页面,待用户确认后直接关闭页面,不给用户刷新的机会。我想绝大多数WEB程序框架都是这样解决的,但不知是否所有程序员都考虑过为什么会这样,就像我。
其实还有一种情况,就是必须返回到编辑页面,不能关闭页面。比如表单需要上传附件,如果上传页是个单独的页面(我喜欢这样处理)。在上传附件之前,我需要将表单进行一下提交,获得主键之后再自动打开上传页,这样才能保证不造成垃圾附件(如果主表单未进行提交操作)。在打开上传页后(非模式打开)用户在主表单上就可以进行刷新(其实不用用户,因为IE会提示你是否允许弹出页,当你允许后,页面就会刷新),要避免这种情况,就需要重定向了。
真是自报家丑,高手们请一笑而过,望对新手们有所帮助。
分享到:
相关推荐
js 页面离开,关闭,刷新时提醒保存 简单代码.
本文介绍了vue如何在用户要关闭当前网页时弹出提示的实现,分享给大家,具体如下: 效果如下图 正常 js 页面处理方式 [removed] = function (e) { e = e || window.event; // 兼容IE8和Firefox 4之前的版本 if ...
在日常网络浏览中,我们有时会遇到想要保存的网页内容,但默认的"另存为"功能可能无法完整保留网页的全部元素,如JavaScript动态内容、图片、CSS样式等。SaveAsPlus就是为了解决这一问题而生,它能够帮助用户更加...
在IT行业中,转换网页为PDF文件是一个常见的需求,特别是在数据保存、报告生成或者无纸化办公的场景下。本文将详细讲解如何利用Chrome浏览器的驱动器`chromedriver`来实现这个功能,确保在生成PDF时不显示Chrome页面...
在日常的互联网使用中,我们可能会遇到想要长期保存的网页,比如一篇重要的文章、研究资料或者有趣的图片集,这时【网童保存网页】就显得非常实用。 网页保存是个复杂的过程,涉及到HTML结构解析、资源下载(如图片...
卸载前请关闭网页浏览器">提供浏览网页的时候想一键保存某篇网文为文本文件的功能的IE小插件; 1 点击一键另存为安装 exe 2 重启网页浏览器 windows帮助文档 如果开了的话 3 在重新打开的网页或windows帮助文档中...
1. **初始化新窗口**:首先使用`window.open`方法打开一个新窗口,并关闭其默认加载的页面,确保新窗口为空白状态。 2. **构建HTML内容**:在新窗口的`document`对象中写入HTML结构,包括`<html>`、`<head>`、`...
2. **文件操作**:在获取到网页内容后,需要将其保存为本地文件。VC++提供了丰富的文件操作API,如`CreateFile()`用于创建或打开文件,`WriteFile()`用于写入数据,以及`CloseHandle()`关闭文件句柄。考虑到文件名为...
在网页开发中,有时我们需要在用户关闭浏览器窗口或者标签页时执行特定的操作,例如保存数据、清理资源或者显示警告信息。这就是"捕获网页关闭事件"的重要作用。在这个主题下,我们将深入探讨如何使用JavaScript来...
网页缓存清除及页面刷新与关闭 知识点1: 网页缓存的概念 网页缓存是指浏览器将访问过的网页保存到本地缓存中,以便下次访问时可以快速加载。缓存可以分为两种:强制缓存和协商缓存。强制缓存是指浏览器在访问网页...
代码实现时,需要在页面刷新或关闭时更新LocalStorage中保存的最后离开时间,确保下次判断时可以获取到正确的值。此外,页面卸载时应该执行登出电话系统等清理操作,无论页面是刷新还是关闭。 总之,区分页面刷新和...
6. 关闭当前文档,然后重新打开刚刚转换后的文件。你应该会发现表格的边框线已经被正确地保存下来,问题得到了解决。 需要注意的是,进行格式转换可能会丢失一些特定的格式设置,比如页眉、页脚、页码等,所以在...
在IT行业中,转换网页为PDF文件是一项常见的需求,特别是在文档归档、无格式化阅读或打印预览等方面。本篇文章将详细讲解如何使用Python编程语言,结合ChromeDriver工具,实现网页到PDF的转换,并着重讨论如何自定义...
在探讨“判断页面是关闭还是刷新的js代码”这一主题时,我们首先需要理解网页生命周期中的几个关键事件:`onload`、`onunload`、`onbeforeunload`以及`onclose`。这些事件在网页加载、卸载或刷新过程中扮演着重要...
1. **表单数据验证:**当用户填写表单后尚未提交时离开页面,可以弹出提示询问用户是否真的想要离开。 2. **数据同步:**确保数据在用户离开前已经同步到服务器。 3. **清理资源:**释放内存或关闭打开的文件等资源...
3. **Chrome设置调整**:用户可以在Chrome的设置中全局关闭自动填充密码功能,但这会影响所有网站,不是特定页面的解决方案。 4. **服务器端控制**:在服务器返回登录页面时,通过HTTP头部`X-WebKit-CSP`或`Content...
本文将详细探讨如何利用Vue.js实现一个表单在用户未进行编辑或保存操作的情况下,当用户尝试离开当前页面时,如何通过弹窗提示来阻止用户丢失未保存的数据。 ### Vue.js简介 Vue.js(通常称为Vue)是一个轻量级的...
6. **点击保存**:设置完成后,点击“保存”按钮,浏览器会开始处理并打包网页内容,待进度达到100%,浏览器会自动关闭该页面,此时网页就已经保存为MHT文件了。 保存好的MHT文件可以在任意时间,即使在网络断开的...
这里使用了`localStorage`来存储选中值,因为它可以在页面关闭后仍能保留数据。 然后,在页面加载时,我们需要检查是否有之前保存的选中值,并设置回下拉菜单: ```javascript window.onload = function() { var ...
在完成HTML文件的生成和保存后,页面会进行重定向。这里通过`Response.Redirect`方法实现了页面跳转功能。 ```csharp string taid = this.Label1.Text.ToString().Trim(); string poname = this.Label2.Text....