我有一个Silverlight自动完成框来显示工作人员列表,它运行良好。我通过加载BusinessObjects列表来获取数据。
我的问题是第一次你开始在框中输入内容,需要将近2秒的时间才能提出建议。之后,任何后续搜索似乎都是即时的。
显然这里肯定会发生某种延迟加载,它必须以某种方式配置为在初始使用控件时触发。
我想以某种方式在首次加载控件时加载数据,即使在第一次输入时,它也可以提供更好的用户体验,这些建议似乎是即时的。
有谁知道我该怎么做?
答案 0 :(得分:1)
好的,在Silverlight论坛上来回走动后,得到了一个很好的解决方法,我会分享。它是由一位名叫马特的友好的澳大利亚人提供的,如果人们好奇的话我想我会把它发布在这里。
基本上,但是将最小搜索长度设置为2,可以大大减少处理并使渲染“赶上”第二个和第三个字符。他建议的另外两个属性也有助于加快回报。
这是他的帖子:
我用您的代码和更大的项目集合(100,000)更新了我的测试项目,我开始看到问题......:)
将MinimumPrefixLength设置为2(或任何大于1的值,默认设置为1),MinimumPopulateDelay设置为200(默认情况下设置为0)为我删除了问题。我还建议设置MaxDropDownHeight,因为这将确保AutoCompleteBox中的虚拟化能够正常运行。
uxAuto.MinimumPrefixLength = 2;
uxAuto.MinimumPopulateDelay = 200;
uxAuto.MaxDropDownHeight = 300;
你可以在实施中尝试这个,让我知道它是怎么回事? ...
感谢。 马特。 马修奥尔尼 高级顾问 - 用户体验 Avanade Australia
答案 1 :(得分:1)
我为此here添加了一个解决方案,可以限制在ACB中加载的项目数量,并为200000项目提供良好的性能。