我正在编写多个消息的翻译系统。
我有一个页面,其中列出了所有需要翻译的消息。当翻译人员单击要翻译的消息时,我将其锁定,因为无法为其分配其他翻译器。
问题出现在翻译人员进入并改为写东西时,以非常规方式离开页面,如后退按钮或关闭浏览器。
如果发生这种情况,我想解锁消息,使其再次可供其他翻译使用。
我该如何达到这种行为?
我知道javascript onbeforeunload事件,但每次用户刷新页面时都会触发,这不是我想要的。
事先提前编辑: 似乎实现了一个js ajax调用来通知每一分钟服务器是要走的路。现在的问题是如何处理PHP服务器端?
答案 0 :(得分:0)
使用onbeforunload并询问此人是否真的想要使用未保存的更改离开页面有什么问题?
我会在提供手动保存按钮的同时使用上述方法。 此外,锁定超时会有所帮助,因此如果该人员没有编辑该字段几分钟,它将被解锁并通过JS AJAX调用通知该人员。
编辑:要实现AJAX计时器,我会执行以下操作:
答案 1 :(得分:0)
您可以使用WebSockets,但在我看来,它是一种不成熟的技术,而且远离防火墙友好。 1 因此,您可以使用HTTP轮询。使用JavaScript不时向服务器发出HTTP请求,因此它将向服务器显示客户端仍在页面中。时间将取决于连接,用户数量等,但将其置于保持活动过期之前是一个好主意,因为TCP / IP连接仍处于打开状态。
如果用户离开页面,则轮询将不会执行,并且在没有收到x秒的HTTP请求加一段时间后,服务器可以假定用户不在页面上。
1 - 它的防火墙对WebSockets不友好,这可能会随着时间的推移而改变