假设我的客户正在填写网站上的数据。使用的底层持久性是Nhibernate。
现在一系列事件就像这样
现在有人可以告诉我如何进入这个场景。因此,即使客户提交,他只识别一个条目并提交它,即使响应已被切断并按下刷新按钮?
答案 0 :(得分:0)
思想:
1)您不希望在每个请求上创建NHibernate SessionFactory。这应该创建一次,然后由所有将来的请求使用。这是一个重量级的操作。每个请求只需要创建会话。
2)以高级方法管理事务 - 在您提交事务之后减少出现问题的可能性,但在客户端有响应之前。
3)通过让提交功能返回显示信息的不同页面来防止“刷新”方法重新提交。此页面不应提交任何内容。
4)通过根据以前提交的凭据验证提交来防范重新提交服务器端。如果客户已经注册过,请通知客户,并为他们提供访问保存详细信息的方法(例如密码恢复)。
因此,例如,如果您的用户通过电子邮件地址键入,那么在页面加载事件中执行以下步骤: