任何人都可以解释为什么ForEach droplet具有全局范围,而不是请求范围?
我的意思是,如果该功能具有请求范围,则此功能可以为我们提供性能(具有许多用户的真实应用程序)。
答案 0 :(得分:4)
如果组件具有请求范围,则意味着每次请求组件时都将创建此组件的实例(对象)(时间和内存资源)。请求越频繁 - 创建对象所需的时间就越多。一次用户\请求越多 - 一次访问的对象越多。全局范围组件创建一次,可以被所有请求和不同用户重用。
ForEach droplet是无状态的,一次可以被许多不同的请求\用户使用,所以没有理由让它成为请求范围。
答案 1 :(得分:0)
全局范围意味着组件只创建一次。 Droplet应该是无状态的,因为它更容易使用和维护它们。在您的特定情况下,没有必要制作ForEach droplet请求范围,因为我们可以在每次调用Droplet时传递一个新参数来迭代。另一方面,表单处理程序应具有请求或会话范围,因为它们旨在处理用户请求,例如,登录过程,提交订单。