【发布时间】:2019-08-23 15:23:41
【问题描述】:
我有一个 sling-model,需要在初始化时进行一些代价高昂的操作。这些与页面范围有关,意思是基于currentPage 属性。因此,每次页面调用只初始化一次模型是有意义的。
我在how to call sling model only once 找到了一篇很好的文章,他们将Model-annotation 的cache 属性设置为true。
但不幸的是,这仅适用于每个资源。
因此,设置cache=true 属性,模型会为每个通过data-sly-use 调用它的组件初始化。它只会帮助我们在同一个组件(资源)中调用 data-sly-use,但这并没有帮助。
我能否以某种方式为 页面-请求的整个生命周期缓存模型?
【问题讨论】:
-
您应该考虑从组件模型中删除不需要每次初始化组件时调用的逻辑;也许使用服务并有条件地调用它。你也可以设置属性来请求页面范围。
-
“设置属性以请求页面范围”是什么意思?在服务中设置这个?不幸的是,有必要在每个组件中都有操作的结果,因为它们总是在使用数据。
-
别管范围部分,看我的回答。