grails中的过滤器问题

grails中的过滤器问题,grails,Grails,我的要求是在每次点击服务器时更新数据库中的用户会话记录。 所以我已经为此编写了过滤器 allExceptLogin(controller: 'login', invert: true){ before = { } } 这很好,因为它进入了过滤器中,我可以在其中更新记录,但问题是,如果我在一次单击中有超过1个方法调用,那么它会进入这个过滤器很多次 例如,如果我点击一个页面,从同一个或不同的控制器调用4种不同的方法,那么它将进入该过滤器4次,最终将更新记录4次 我需要一些条件,说明

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

allExceptLogin(controller: 'login', invert: true){
    before = {
    }
}
这很好,因为它进入了过滤器中,我可以在其中更新记录,但问题是,如果我在一次单击中有超过1个方法调用,那么它会进入这个过滤器很多次

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

我需要一些条件,说明1单击=1请求此筛选器。
这是可能的还是可以通过其他方式实现的?

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

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

它的缺点是Grails本身没有一个内置的机制来区分相关的请求