Grails控制器动作多次执行

时间:2012-01-11 15:24:09

标签: grails groovy controller request action

此代码段中出现一个奇怪的问题:

class FooController {

  def barService

  def update = {
    log.debug("I'm getting executed")
    barService.doFoo()
    render "Done"
  }
}

当我现在在浏览器中输入http://my.domain.tld/fancyapp/foo/update(在我的情况下是Firefox)时,update中的代码会被执行三次。


编辑1: barService.doFoo()包含大量计算,因此完成需要很长时间。


编辑2: @hvgotcodes:不,抱歉,没有身份验证,我的UrlMappings.groovy看起来像这样:

class UrlMappings {
  static mappings = {
    "/$controller/$action?/$id?"{
      constraints {
        // apply constraints here
      }
    }
    "/"(view:"/index")
    "500"(view:'/error')
  }
}

@Jarred:不,只有通常的嫌疑人Bootstrap.groovyBuildConfig.groovyConfig.groovyDataSource.groovyUrlMappings.groovy

暗示任何人?

1 个答案:

答案 0 :(得分:0)

如果请求时间过长,浏览器可能会重试该请求。如果你可以提高doFoo()方法的性能,它应该只执行一次。