Php ajax—使用onload和onunload启动和结束会话

Php ajax—使用onload和onunload启动和结束会话,php,javascript,ajax,Php,Javascript,Ajax,我有一个注册页面 在这个页面上,php后端根据表异步检查用户输入值 我的问题是数据模型对象相当大;当有人进入页面(onload)时,通过ajax启动一个会话是明智的,该页面缓存模型对象,这样来自该客户机的所有其他ajax请求就不会在每次请求时都重新创建数据模型对象。然后,当用户离开页面(onunload或其他)时,会向会话发送一个ajax请求 这对我来说似乎是个好主意,因为用户与表单交互时发出的每个异步请求都不会重新创建之前创建的所有对象 这在实践中有效吗 (有关我的担忧详情,请参见评论) 更新

我有一个注册页面

在这个页面上,php后端根据表异步检查用户输入值

我的问题是数据模型对象相当大;当有人进入页面(onload)时,通过ajax启动一个会话是明智的,该页面缓存模型对象,这样来自该客户机的所有其他ajax请求就不会在每次请求时都重新创建数据模型对象。然后,当用户离开页面(onunload或其他)时,会向会话发送一个ajax请求

这对我来说似乎是个好主意,因为用户与表单交互时发出的每个异步请求都不会重新创建之前创建的所有对象

这在实践中有效吗

(有关我的担忧详情,请参见评论)

更新:


提出的主要问题是,它将创建一个悬而未决的会话。这个问题可以通过在会话中设置一个简单的5分钟超时来解决吗?

对于任何想知道的人来说,这被证明是一个令人无法忍受的可怕想法。这在原则上还行,但管理所有会话并确保所有内容都与前端保持同步几乎是不可能的,也不具有可扩展性,这反过来又使我的控制器结构变得如此复杂,以至于调试成为一场噩梦(更不用说每次更新开发报告时我都必须清除浏览器缓存). 它浪费了我很多时间,使我错过了一些关键的最后期限,最终是一个巨大的努力,而这实际上是一个很小的开销


请不要尝试这个。

听起来是个不错的主意。你为什么认为它不起作用?我说我担心的是我不知道这是否是一种被广泛采用的做法,如果不是,那么我担心这是它没有被广泛采用的一个很好的理由。。如果这是有意义的:例如,我不知道与onunload的一个众所周知的不一致,可能会导致会话中断或其他情况。如果您无法在用户之间共享会话,您可能会与少数用户一起使用大量资源。我想不出别的了。^我喜欢那个主意当然,如果有人发送另一个请求,他们的时间会缩短到5分钟。