如何将一些JavaScript状态信息保存回onUnload服务器?

如何将一些JavaScript状态信息保存回onUnload服务器?,javascript,ajax,extjs,Javascript,Ajax,Extjs,我在网页上有一个网格,我想在用户离开该页面时将它的一些状态信息保存回服务器。 我可以通过onUnload上的Ajax请求来实现这一点吗? 如果没有,还有什么更好的解决方案?您可以使用Ajax请求,但请确保它是同步请求,而不是非同步请求。或者,只要在用户进行更改时保存状态,这也可以在用户浏览器崩溃时保护数据。您还可以在卸载时使用javascript设置cookie。我认为ajax比cookies的优势在于,您拥有可用于报告的数据,并且用户(如果登录)可以跨不同的机器使用这些数据 使用ajax的缺点

我在网页上有一个网格,我想在用户离开该页面时将它的一些状态信息保存回服务器。 我可以通过onUnload上的Ajax请求来实现这一点吗?
如果没有,还有什么更好的解决方案?

您可以使用Ajax请求,但请确保它是同步请求,而不是非同步请求。或者,只要在用户进行更改时保存状态,这也可以在用户浏览器崩溃时保护数据。

您还可以在卸载时使用javascript设置cookie。我认为ajax比cookies的优势在于,您拥有可用于报告的数据,并且用户(如果登录)可以跨不同的机器使用这些数据


使用ajax的缺点是,它可能会减慢浏览器窗口的实际关闭速度,如果服务器响应速度慢,这可能会很烦人。

这取决于用户如何离开页面。 如果GUI中有一个“注销”按钮,那么当用户单击该按钮时,可以触发ajax请求。 否则,我认为在onUnload提出请求不是一个好主意。如前所述,您必须发出同步请求。。。
cookie解决方案的另一种选择是隐藏文本字段。这是一种工具通常使用的技术,例如处理ajax附带的历史问题的工具。

上面有一个答案说使用同步ajax调用,这是最好的情况。问题是卸载并不是无处不在。如果你看一下,你会发现一些技巧来帮助你在safari中卸载事件。。。您也可以使用Google Gears在用户将返回的情况下保存内容,但保存该信息的唯一完全安全的方法是,只要用户在页面上或进行更改,就可以持续发送该信息