用户在提交后进行页面刷新会有问题吗?
Can a user doing a page refresh after a submit be a problem?
终端用户经常被告知不要点击两次提交按钮,让交易完成;而且,有不同的技术用于解决这种情况。
最近,有人问我,"你怎么处理用户在提交后刷新页面的情况",暗示这会导致重复提交或其他问题。
你能让我知道这是一个需要处理的问题吗?情况是什么以及如何最好地解决它,如果有的话。
解决这个问题的最好方法是使用Post/Redirect/Get模式。
是的,这是一个真正的问题,除非你自己处理。在实践中,在大多数浏览器上,当用户点击刷新时,数据被重新提交,如果你在服务器端不检查这一点,它将导致你采取相同的动作两次(例如,信用卡两次收费,重复论坛帖子等)。
处理这个问题的方法是检查用户以前是否发表过文章。例如,如果你正在建立一个论坛,你会发送一个隐藏的变量与唯一的ID与帖子。在解析发布的数据时,将这个唯一ID保存到数据库中。如果您遇到一个具有唯一ID的帖子已经保存,那么您知道您正在查看客户端的"刷新",并且您可以简单地忽略该帖子。
希望这对你有帮助!
如果您的用户如此倾向于做页面刷新,这听起来像是您的服务花费方式太长时间来响应。在提交时禁用提交按钮,并显示某种加载指示,直到响应返回。
或者,立即在服务器上响应,并将操作排队等待。例如,Linode对服务器行为进行队列处理,而不是在"请求调整分区大小"时立即运行。您可以将此方法推广到其他行为,甚至可以使用ajax显示进度指示器等内容。
是的,这可能是一个问题(实际上是一个问题在很多网站)。但我认为这是一个与服务器端相关的问题,而不是Javascript。最佳实践是使用Post/Redirect/Get模式(因为你是在询问提交后的刷新)。
是的,这是一个真正的问题,但我相信这通常是由浏览器处理。例如,Chrome会在页面刷新时通知你,如果有数据被发布到服务器,并给你继续或中止的选项。
编辑:实际上……仔细想想,我在工作中确实需要处理这个问题。我最后做的是在页面上创建一个阴影框,直到整个过程完成
- 给出过程正在工作的视觉反馈和
- 阻止任何其他用户操作。
"如何处理用户提交后刷新页面的情况"
在表单成功提交后,您应该将重定向到该页面。
这将防止用户再次提交数据,并防止浏览器发出烦人的警告,说数据将再次提交。
- 这个条件语句的逻辑有问题
- 什么'这个javascript代码getElementById有问题
- 如何处理流星变量&对miniMongo有问题
- 谷歌表单xml有问题
- Html、css和jQuery.我的代码有问题
- 有问题的突出显示(悬停)一个系列,突出显示图表
- D3 折线图示例 - 日期有问题
- j查询模式窗口,刷新父问题
- 页面刷新后javascript内存泄漏有问题吗?为什么?
- 有问题的键代码186和222,如何捕捉它们
- 循环 += 十进制变量的 javascript 有问题
- 随机数生成器,what'我的方法/统计数据有问题吗?[JS]
- 为了在列表中搜索,角度过滤器有问题
- 我对按钮的作用域有问题'的听众
- 为什么我的setInterval有问题
- Javascript在每个有问题的控件上输出一条错误消息
- url的正则表达式有问题
- 没有按钮的Javascript滚动器有问题
- 我的javascript函数有问题,我认为是document.getElementById('vodObj
- 用户在提交后进行页面刷新会有问题吗?