再谈提高infopath启动速度

最近一段, 我的InfoPath Form启动速度一直是令我最头疼的问题。客户对其他功能都认可了,但对启动速度非常不满意。找了不少网站,查了不少资料,也没有找到合适的解决方法,没办法,自己想辙吧。

首先,分析一下我的infopath启动过程,发现了第一个问题,调用了太多的web services为Form的dropdown准备初始化数据。数了数,在启动时需要调用的web service多达10个!!Web service本来就慢,反复调用10次,速度不慢才怪。解决方案就出来了。

服务段先来个web service大合并,将原来的10个web service合并为一个。返回值是一个xmldocument,服务端将原来10个web service的结果作为10个xml node加入到xmldocument中。

在infopath方面,重新设置dropdown list的数据绑定即可。

这个方法确实提高了不少速度,从1分半提高到40秒,但是客户认为启动速度还是不够快。

再研究发现,我的返回数据里有很多冗余数据。xml web service返回值是一个xml document,所有数据都是序列化的字符,Size非常大。例如,我有一个dropdown list是所有联系人的列表,infopath只需要uerid和username两个字段的信息,但web service返回值却包含了5个字段,也就是说有三个字段是冗余的。

我的解决办法很简单,去掉冗余数据,只传送必要的数据给infopath,结果将返回结果的大小从700K减少到300K左右。数据量减少了一半,启动速度却快了4倍多,从40秒提高到10秒了。

回过头来总结一下,发现问题还是出现在哪些最基本却最容易被忽视的设计原则上:

1 减少交互次数

2 减少数据传输量。

 生活中总是出现这种情况,我们常常把注意力放到远方(那些技巧和设计模式上),而对一些脚下最基础的东西(哪些基本的、朴素的准则)反而视而不见。

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值