我在网页上有一个ExtJS网格,当用户离开页面时,我想将一些状态信息保存回服务器。 我可以使用Ajax请求onUnload吗? 如果没有,什么是更好的解决方案?
答案 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附带的历史问题。