在我必须访问控件的值的两个选择中,哪个是最有效的?
getComponent("ControlName").getValue();
or
dataSource.getItemValue("FieldName");
我发现有时getComponent
似乎没有返回当前值,但访问dataSource
似乎更可靠。那么从性能角度来看,使用哪一个有很大区别吗?
dataSource.getValue 似乎在我尝试过的任何地方都有效。但是,在使用 rowData 时,我似乎仍然需要执行 rowData.getColumnValue("Something") 操作。 rowData.getValue("Something") 失败。
两者都不。最快的语法是dataSource.getValue ("FieldName")
. The getItemValue
方法仅对文档数据源可靠,而getValue
方法不仅可用于通过视图数据源访问的视图条目(尽管在该上下文中,您将向其传递视图列的编程名称,该名称不一定与字段的名称相同),而且还可用于您开发或安装的任何自定义数据源(例如第三方扩展库)。此外,它还会自动进行类型转换,如果您使用过,则必须自己进行类型转换getItemValue
反而。
即使在非常简单的页面上,dataSource.getValue ("FieldName")
速度是 5 倍getComponent ("id").getValue ()
,因为,正如 Fredrik 提到的,首先它必须find组件,然后询问它的值是什么......无论如何,在幕后,它只是询问数据源。因此,亲自询问数据源总是会更快。
NOTE:对应的写入方法是dataSource.setValue ("FieldName", "NewValue")
, not dataSource.replaceItemValue ("FieldName", "NewValue")
。两者都可以工作,但是setValue
也进行相同的类型转换getValue
确实如此,因此您可以向其传递不严格符合旧 Domino Java API 的数据,它通常只是确定需要将值转换为什么,以便 Domino 能够“安全”存储。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)