如何在onUnload上将一些JavaScript状态信息保存回我的服务器?
时间:2020-03-05 18:56:14 来源:igfitidea点击:
我在网页上有一个ExtJS网格,我想在用户离开页面时将其某些状态信息保存回服务器。
我可以使用Ajax请求onUnload来做到这一点吗?
如果没有,有什么更好的解决方案?
解决方案
回答
我们可以使用Ajax请求,但请确保使其成为同步请求,而不是异步请求。另外,只要用户进行更改,只需保存状态,这也可以在用户浏览器崩溃时保护数据。
回答
我们还可以在卸载时使用javascript设置cookie。我认为ajax与cookie相比的优势在于,我们拥有可用于报告的数据,并且用户(如果已登录)可以跨不同的机器使用数据。
使用ajax的缺点是,它可能会减慢浏览器窗口的实际关闭速度,如果服务器响应速度很慢,这可能会很烦人。
回答
这取决于用户离开页面的方式。
如果GUI中有一个"注销"按钮,则当用户单击此按钮时,我们可以触发ajax请求。
否则,我认为在onUnload中进行请求不是一个好主意。如前所述,我们将必须发出同步请求...
Cookie解决方案的替代方法是隐藏文本字段。这是RSH之类的工具通常使用的技术,用于处理Ajax附带的历史记录问题。
回答
上面有一个答案,说要使用同步ajax调用,这是最好的情况。问题在于,卸载并非在所有地方都有效。如果我们在这里查看,我们会发现一些技巧,可在野生动物园中获取卸载事件...我们还可以使用Google Gears在用户回来的情况下保存用户的内容,但这是唯一安全的方法只要用户在页面上或者进行更改,该信息便会持续发送。