确定是否有人离开网页的好方法

本文关键字:网页 方法 离开 是否 | 更新日期: 2023-09-27 18:33:30

我正在尝试编写一个应用程序,以便我们的客户可以编辑某些字段。当他们单击编辑时,代码将锁定要编辑的数据。当他们单击保存时,数据将解锁。但是当他们单击其他地方,转到另一个页面或站点,甚至关闭浏览器时,我无法确定是否可以解锁数据。

确定用户是否已离开编辑页面的好方法是什么?

(我们使用的是 C# .NET 3.5 和 JQuery 以及 SQL Server 2005 DB(。

确定是否有人离开网页的好方法

如果您确实必须使用悲观锁定,则可以添加签入Session_End并解锁此用户在当前会话中设置的所有锁。如果用户关闭浏览器窗口或进入另一个站点,请使用onUserExit jQuery插件结束会话,这是一个例子:

https://stackoverflow.com/a/10481972/351383

您可以使用 html 标记的 "onunload" 事件。引发此事件- 当使用X按钮关闭页面时- 当页面被重定向时(在您的情况下,用户单击编辑并移动到其他链接而不保存。

希望这有帮助!!

您的问题被理解为"确定用户是否在没有单击"保存"以解锁字段的情况下放弃了编辑页面的好方法是什么?

但是当他们单击其他地方,转到另一个页面或站点,甚至关闭浏览器时,我无法确定是否可以解锁数据。

有人从同一应用程序查看另一个页面的所有场景都可能意味着同一会话中的另一个窗口 - 也许是为了检查某些内容。您不希望这会触发解锁,因为您的用户仍然可以打开一个窗口,他们可以在其中提交编辑。

用户离开页面的其他方案可以使用 onUserExit。

但是,您从此列表中省略了"用户去吃午饭时让网页打开"的情况。这就是为什么悲观锁定是有问题的。

因此,将

问题改写为"用户点击了编辑,但未能在合理的时间限制内进行修改和保存"。

基本上,您的锁应该在某个时候过期。

单击"编辑"后,保存锁定启动并启动计时器(5分钟?(,该计时器在屏幕上也可见。(如果同步这些是一个问题,请使客户端计时器比服务器端计时器短(。您的用户必须进行更改,并在此时间内单击保存。您也许可以添加一个"扩展"按钮来延长时间。

原则是,你需要确定有人离开了它太久,而不是有人离开了它。您还向用户显示,单击"编辑"后,您希望他们很快进行编辑。

您需要对系统进行编码以解锁锁已过期的字段。

这样做的好处是,对于请求此类编辑锁定的人来说,您的倒计时看起来很"酷"。