在文章"使用JSON-RPC提高XPages应用程序性能" Brad Balassaitis写道:
例如,如果你有一个名为myRepeat和的集合的重复控件 一个名为myProperty的属性,您可以在客户端JavaScript中传递/检索它 使用这种语法: '#{javascript:myRepeat.myProperty}' 然后你对远程方法的调用如下所示: myRpcService.setScopeVar('#{javascript:myRepeat.myProperty}');
如果我查看xp:repeat控件我应该在哪里设置myProperty属性?
我的想法是在重复控件中显示来自其他来源的值。因此,对于重复控制中的每个条目,我想通过远程服务控制进行呼叫,并添加从服务接收的其他信息。
之前有人这么做过吗?
答案 0 :(得分:1)
JSON-RPC只是一种允许您触发服务器端代码而无需完全部分刷新的机制。 myProperty
不是实际属性,与myRepeat
相同,实际上不是重复的名称。这是一个例子。
您是否希望用户点击行中的某些内容以加载其他信息?这是沿着RPC路线走下去的唯一用例。
如果要显示当前条目中不可用的其他信息,但要根据该条目的属性,只需添加一个控件并计算该值。
在优化方面,除非您一次显示数百行或从许多不同的数据库或视图加载数据,每个数据库或视图都基于当前行中的属性,否则它应该非常快。我建议让它工作,如果你发现服务器端性能是一个问题,那么优化它。 view.isRenderingPhase()是优化重复内部只读数据性能的一个很好的选择,自定义语言可以最大限度地减少推送到浏览器的HTML数量,也可以使用dataContext来确保只查找例如另一份文件一次。但是,如果来往服务器的网络请求速度很慢,那么优化服务器端代码以便在处理过程中节省一小段时间就不会产生明显的影响。