在不使用ONUNLOAD的情况下,请考虑离开网站的用户



我有一个资源非常有限的Web服务(我可以同时处理大约3个用户)。

用户与我的网站进行交互时,他们会启动复杂的流程服务器端。(此过程是限制因素,因为我的服务器计算机将无法并行处理许多人,并且客户端无法在其身边运行。)

我的问题是如何确保结束离开的用户的过程,例如通过关闭窗口。

我已经考虑了 onunload onbeforeunload ,但是它们也是由网站中的链接触发的(我需要用户能够与流程进行交互),所以这似乎不是一个选择。

根据其他问题,这种方法似乎有问题(例如,请参阅此方法),但是如果有一种方法可以检查用户在执行onunload触发的操作时是否仍然是活动用户(即使在网站的不同页面),但我不知道该怎么做。

我还考虑过定期检查活动用户列表并取消剩下的用户的过程,但我不知道这是否可能。

我对cookie的经验为零,但是这是使用它们的地方吗?服务器可以访问已断开用户的(仍活着的)cookie吗?

哪个听起来像是这个问题的合理方法?

这样的情况通常是通过心跳来处理的。让您的客户将定期心跳(本质上是pings)发送给服务器,并通知其仍然活着并且对过程结果感兴趣。服务器会自动杀死未收到客户端心跳的那些过程。

我考虑了Onunload和OnBeForeunLoad

你是对的 - 你不能依靠它们。

我的cookie经验为零,但这可以是使用它们的地方吗?

否。Cookies维护客户端状态,该状态将通过HTTP调用发送到服务器。因此,服务器无法管理cookie。相反,他们只看它们以识别状态。

最新更新