谁能解释为什么 ForEach 液滴具有全局范围,但没有请求范围?
我的意思是,如果它具有请求范围,则此功能在性能(具有许多用户的真实应用程序)方面给我们带来了什么。
谁能解释为什么 ForEach 液滴具有全局范围,但没有请求范围?
我的意思是,如果它具有请求范围,则此功能在性能(具有许多用户的真实应用程序)方面给我们带来了什么。
如果一个组件具有请求范围,则意味着每次请求该组件时都会创建该组件的一个实例(对象)(时间和内存资源)。请求越频繁 - 创建对象所需的时间就越多。一次用户请求越多 - 一次对象越多。全局范围组件创建一次,所有请求和不同用户都可以重复使用。
ForEach droplet 是无状态的,一次可以被许多不同的请求\用户使用,因此没有理由使其成为请求范围。
全局范围意味着组件只创建一次。Droplet 应该是无状态的,因为它更易于使用和维护。在您的特定情况下,创建 ForEach 液滴请求范围是没有意义的,因为我们可以在每次调用液滴时传递一个新参数来迭代。另一方面,表单处理程序应该具有请求或会话范围,因为它们旨在处理用户请求,例如登录过程、提交订单。