【问题标题】:ATG dynamo droplet scopesATG 发电机液滴范围
【发布时间】:2016-05-30 17:36:59
【问题描述】:

谁能解释为什么 ForEach 液滴具有全局范围,但没有请求范围?

我的意思是,如果它具有请求范围,则此功能在性能(具有许多用户的真实应用程序)方面给我们带来了什么。

【问题讨论】:

标签: atg oracle-commerce atg-droplet


【解决方案1】:

如果一个组件具有请求范围,则意味着每次请求该组件时都会创建该组件的一个实例(对象)(时间和内存资源)。请求越频繁 - 创建对象所需的时间就越多。一次用户请求越多 - 一次对象越多。全局范围组件创建一次,所有请求和不同用户都可以重复使用。

ForEach droplet 是无状态的,一次可以被多个不同的请求\用户使用,所以没有理由让它成为请求范围。

【讨论】:

    【解决方案2】:

    全局范围意味着组件只被创建一次。 Droplet 应该是无状态的,因为它更易于使用和维护。在您的特定情况下,创建 ForEach 液滴请求范围是没有意义的,因为我们可以在每次调用液滴时传递一个新参数来迭代。另一方面,表单处理程序应该具有请求或会话范围,因为它们旨在处理用户请求,例如登录过程,提交订单。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 2016-11-23
      相关资源
      最近更新 更多