过滤grails中的问题

时间:2014-06-05 07:16:16

标签: grails

我的要求是在每次点击服务器时更新数据库中的用户会话记录。 所以我为此写了过滤器

allExceptLogin(controller: 'login', invert: true){
    before = {
    }
}

哪个工作正常,因为它进入了我可以更新记录的过滤器,但问题是,如果我一次点击多次方法调用,那么它会多次进入这个过滤器。

例如如果我点击一个从相同或不同控制器调用4种不同方法的页面,那么它将进入此过滤器4次,最终将更新记录4次。

我需要一些条件,说1次点击= 1请求此过滤器。 这是可能的,还是可以通过其他任何方式实现?

1 个答案:

答案 0 :(得分:0)

服务器没有"点击"的概念,它只处理请求。一种可能的方法是让客户端发送一个密钥参数,每个"点击"然后,您的过滤器可以一次处理。

另一种选择是在服务器上设置超时(例如在session对象上)以仅每x秒处理一次请求。您可能也会错过一些相关的电话,但这可能没问题。

缺点是Grails本身没有内置机制来区分相关请求。