谁能解释为什么ForEach滴子具有全局范围,但没有请求范围?
我的意思是,如果此功能具有请求范围,则此功能在性能(具有许多用户的真实世界应用程序)方面为我们提供了什么。
如果组件具有请求范围,则意味着每次请求该组件时都会创建该组件的实例(对象)(时间和内存资源)。请求的频率越高 - 创建对象所需的时间就越多。一次的用户\请求越多 - 一次的对象就越多。全局作用域组件创建一次,所有请求和不同用户都可以重复使用。
ForEach droplet 是无状态的,可以由许多不同的请求\用户一次使用,因此没有理由将其设置为请求范围。
全局范围意味着组件只创建一次。快捷批处理应该是无状态的,因为它更易于使用和维护它们。在您的特定情况下,没有必要将 ForEach 快捷批处理请求限定为范围,因为我们可以在每次调用 droplet 时传递一个新参数来循环访问。另一方面,表单处理程序应该具有请求或会话范围,因为它们旨在处理用户请求,例如登录过程,提交订单。