mar*_*tin 7 ajax session jquery tapestry session-timeout
我正在使用Tapestry和Spring Security以及除Prototype之外的jQuery库构建一个webapp.当用户在会话超时后单击链接时,会自动将其重定向到登录页面.当然,这对于触发AJAX请求的链接不起作用.
我知道,这是任何类型的Web应用程序的常见问题(例如http://www.openjs.com/articles/ajax/session_timeout.php).Tapestry 5有最佳实践解决方案吗?
编辑 以下解决方案(感谢Henning)对我有用:
Ajax.Responders.register(
{
onException: function()
{
window.location.reload();
}
});
如果在AJAX调用期间发生故障,则会触发页面重新加载,从而重定向到登录页面.它仍然需要一些调整(例如显示错误消息而不是重定向),但使用Ajax.Responders基本上似乎是一种很好的方法.
对于使用Prototype的AJAX,您可以使用AJAX.Responders添加一个响应 AJAX失败的全局侦听器 ; jQuery有一个类似的结构叫做Ajax Events,你可以使用它.
两个事件处理程序都应该在403错误时重定向到登录页面.您可以使用此功能创建mixin并将其添加到布局组件中.
我还使用了一种机制,可以防止会话超时,同时应用程序仍然在浏览器窗口中打开,只需执行一次AJAX调用并每隔几分钟接收一次空响应,从而保持会话打开.愚蠢,但工作正常.
| 归档时间: |
|
| 查看次数: |
2534 次 |
| 最近记录: |