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

时间:2008-09-16 15:04:39

标签: javascript ajax extjs

我在网页上有一个ExtJS网格,当用户离开页面时,我想将一些状态信息保存回服务器。 我可以使用Ajax请求onUnload吗? 如果没有,什么是更好的解决方案?

4 个答案:

答案 0 :(得分:2)

您可以使用Ajax请求,但请务必将其作为同步请求而不是非同步请求。或者,只要用户进行更改,只需保存状态,如果用户的浏览器崩溃,这也可以保护数据。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

您还可以在卸载时使用javascript设置Cookie。我认为ajax对cookie的优势在于,您可以使用数据进行报告,并且用户(如果已登录)可以在不同的计算机上使用这些数据。

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

答案 3 :(得分:0)

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