我从未在 xPages 中使用过数据上下文,想知道它的好处,
如果我想在内存中返回一些东西,我经常在 SSJS 脚本库中调用函数,我相信它也存储在内存中。
所以假设我在 ssjs 中有一个函数返回一个 notesdocument,这个函数可能会从我的 xpage 的几个地方被调用。在这种情况下,数据上下文是否有益于在 ssjs 脚本库中具有函数。
最佳答案
dataContexts 可以被认为是全局变量。与 SSJS 函数相比的优点是:
1) dataContext 运行 SSJS/Java/任何返回值。对 dataContext 的引用使用 EL(例如 #{myVar}),与数据源相同。所以我的理解是EL获取值,而不是每次都运行SSJS/Java代码。所以那里有性能优势。
2) dataContext 的值可以动态计算或在页面加载时计算。因此,您可以使用 ${javascript:@Today()} 并运行一次,而不是每次都运行一个函数。
我怀疑还有性能优势,因为对 dataContexts 的引用使用 EL。因此,您在引用中绝不会运行 SSJS,因此不必通过 SSJS 解析器。
dataContexts 的额外好处是它们可以被限定到数据源可以使用的任何级别 - 例如 XPage、自定义控件或面板。这使它们比 viewScope 更具优势。因此,您还可以在重复控件的面板中设置 dataContext,以避免对 NotesDocument 的字段或字段的串联进行多次引用。
我倾向于避免在 dataContexts 中存储 Domino 对象,主要是因为回收的固有风险。不知道有没有问题
关于datacontext - 在 xPages 中使用数据上下文有什么好处?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9413943/