我的项目中使用 InfoPath 2003作客户端,由于我的表单上有很多的dropdown list,在启动时非常慢。经过一个小的调整,启动速度快多了。
原来,每一个dropdown list数据源都是一个独立的data connect,连接到服务器的web service。因此,每次启动时,要依次初始化dropdown list,每个dropdown list都会调用一次web service,而web service是很慢的。造成启动速度慢。
为了提高速度,我调整了data connect,为所有的dropdown list建一个web service,将原来每个web service的返回结果添加到一个xml的根下面,这样,整个启动期间只要调用一次就可以了。
例如,我原来有2个dropdown list,分别是部门和人员,对应服务器端两个web service,
public XmlDocument GetDepartments(), public XmlDocument GetContacts()。
现在,我在服务器端增加一个web service方法public XmlDocument GetInitData(), 这个方法的返回值是一个xml文档,里面有两个子节点,一个存放GetDepartments的结果,另一个存放GetContacts的结果。需要注意的是,一定要保证各个数据结果集的名字是不重复的。如果使用的是DataSet直接转换的xml,需要保证每个表的名字是不重复的。
本文介绍了一种通过优化InfoPath2003中dropdownlist的数据加载方式来显著提高表单启动速度的方法。原本每个dropdownlist都单独调用webservice获取数据,导致启动缓慢。通过整合所有dropdownlist的数据请求为一次webservice调用,并将结果组织在一个XML文档中,有效减少了启动时间。

9194

被折叠的 条评论
为什么被折叠?



