在xPages中使用数据上下文有什么好处?

Tho*_*ian 4 datacontext xpages

我从未在xPages中使用过数据上下文,并且想知道它的好处,

如果我想在内存中返回一些内容,我经常在SSJS脚本库中调用函数,我相信它也存储在内存中.

所以假设我在ssjs中有一个函数返回一个notesdocument,这个函数可能是从我的xpage中的几个地方调用的.在这种情况下,数据上下文将有利于在ssjs scriptlibrary中具有函数.

Pau*_*ers 7

dataContexts可以被认为是全局变量.SSJS功能的优点是:

1)dataContext运行SSJS/Java /返回值的任何内容.对dataContext的引用使用EL(例如#{myVar}),与数据源相同.所以我的理解是EL获取值,而不是每次都运行SSJS/Java代码.所以那里有性能优势.

2)dataContext的值可以动态计算或在页面加载时计算.因此,您可以使用$ {javascript:@Today()}并运行一次,而不是每次都运行一个函数.

我怀疑还有一个性能优势,因为对dataContexts的引用使用EL.所以在引用中没有任何一点你运行SSJS,所以它不必通过SSJS解析器.

dataContexts的额外好处是它们可以限定到数据源可以达到的任何级别 - 所以XPage,Custom Control或Panel.这使它们比viewScope更具优势.因此,您还可以在重复控件中的面板中设置dataContext,以避免多次引用NotesDocument的字段或字段的连接.

我倾向于避免在dataContexts中存储Domino对象,主要是因为回收的固有风险.我不知道是否有问题,我