2016-05-30 108 views
0

任何人都可以解釋爲什麼ForEach液滴具有全局範圍,但不請求範圍?ATG發電機液滴範圍

我的意思是,如果它具有請求範圍,則此功能可以爲我們提供性能(具有多個用戶的實際應用程序)相比較。

+0

[ATG ..中的$ scope = global是什麼意思?](http://stackoverflow.com/questions/18613691/what-does-it-mean-by-scope-global-in -ATG) – bated

回答

4

如果組件具有請求範圍,則意味着每次請求組件時都會創建此組件的實例(對象)(時間和內存資源)。請求越頻繁 - 創建對象所需的時間就越多。一次請求的用戶數越多 - 一次的對象越多。全局作用域組件只創建一次,可供所有請求和不同用戶重用。

ForEach液滴是無狀態的,一次可以被許多不同的請求\用戶使用,所以沒有理由讓它請求範圍。

0

全局範圍表示組件僅創建一次。水滴應該是無狀態的,因爲它更易於使用和維護。在你的特定情況下,ForEach液滴請求範圍沒有意義,因爲我們可以在每次調用液滴時傳遞一個新參數來迭代。另一方面,表單處理程序應該具有請求或會話範圍,因爲它們旨在處理用戶請求,例如,登錄過程,提交訂單。