Xpages xp中的JSON-RPC:重复

Xpages xp中的JSON-RPC:重复,xpages,xpages-extlib,json-rpc,Xpages,Xpages Extlib,Json Rpc,Brad Balassaitis在“使用JSON-RPC提高XPages应用程序性能”一文中写道: 例如,如果您有一个名为myRepeat和 一个名为myProperty的属性,您可以在客户端JavaScript中传递/检索它 使用此语法: “#{javascript:myRepeat.myProperty}” 然后,对远程方法的调用将如下所示: myRpcService.setScopeVar('#{javascript:myRepeat.myProperty}') 如果我查看xp:repea

Brad Balassaitis在“使用JSON-RPC提高XPages应用程序性能”一文中写道:

例如,如果您有一个名为myRepeat和 一个名为myProperty的属性,您可以在客户端JavaScript中传递/检索它 使用此语法: “#{javascript:myRepeat.myProperty}” 然后,对远程方法的调用将如下所示: myRpcService.setScopeVar('#{javascript:myRepeat.myProperty}')

如果我查看xp:repeat控件,我应该在哪里设置这个myProperty

我的想法是在repeat控件中显示来自另一个源的值。因此,对于重复控制中的每个条目,我希望通过远程服务控制进行呼叫,并添加从服务接收到的附加信息


以前有人做到过这一点吗?

JSON-RPC只是一种机制,允许您触发服务器端代码,而无需完全或部分刷新
myProperty
不是实际的属性,正如
myRepeat
在实践中不会是您的repeat的名称一样。这是一个例子


您是否希望用户单击行中的某些内容以加载其他信息?这是沿着RPC路线走下去的唯一用例

如果要显示当前条目中不可用但基于该条目属性的其他信息,只需添加一个控件并计算该值


在优化方面,除非您一次显示数百行,或者从许多不同的数据库或视图加载数据,每个数据库或视图都基于当前行中的属性,否则它应该非常快。我建议您让它工作起来,如果您发现服务器端性能有问题,请对其进行优化。view.isRenderingPhase()是一个很好的选项,用于优化重复中只读数据的性能,自定义语言可以最大限度地减少推送到浏览器的HTML量,还可以使用dataContext来确保仅对另一个文档进行一次查找。但是,如果与服务器之间的网络请求很慢,优化服务器端代码以在处理过程中节省几分之一秒的时间将不会产生明显的影响。

是否希望用户单击行中的某个内容以加载其他信息?这是沿着RPC路线走下去的唯一用例。->为什么会有此限制?因为RPC是用户触发的事件。您正在远程运行一个过程(特定的SSJS代码)(由浏览器中的用户单击/模糊/聚焦事件触发的CSJS)。如果您希望用户根据请求加载信息,RPC可能是合适的,但我不完全确定RPC如何将结果传递回浏览器。如果您想要的信息已经为他们提供,请在XPage设计上计算它,并在需要时设置为适当。我正在考虑OnLoad事件(或文档。就绪),我认为这是用户触发事件(加载页面)……对不起,我很难理解为什么你会在页面加载后立即向服务器发出第二个请求,除非在为页面提供HTML的服务器和第二个请求之间可能发生了变化。如果是页面加载,只需在XPage上计算所有内容,XPage应该可以访问您需要的所有内容,因为您可以基于当前行条目的属性在repeat控件中进行后续计算。