我的要求是在每次点击服务器时更新数据库中的用户会话记录。 所以我为此写了过滤器
allExceptLogin(controller: 'login', invert: true){
before = {
}
}
哪个工作正常,因为它进入了我可以更新记录的过滤器,但问题是,如果我一次点击多次方法调用,那么它会多次进入这个过滤器。
例如如果我点击一个从相同或不同控制器调用4种不同方法的页面,那么它将进入此过滤器4次,最终将更新记录4次。
我需要一些条件,说1次点击= 1请求此过滤器。 这是可能的,还是可以通过其他任何方式实现?
答案 0 :(得分:0)
服务器没有"点击"的概念,它只处理请求。一种可能的方法是让客户端发送一个密钥参数,每个"点击"然后,您的过滤器可以一次处理。
另一种选择是在服务器上设置超时(例如在session
对象上)以仅每x秒处理一次请求。您可能也会错过一些相关的电话,但这可能没问题。
缺点是Grails本身没有内置机制来区分相关请求。