【问题标题】:Select control for large amount of data大数据量选择控件
【发布时间】:2015-01-22 19:50:20
【问题描述】:

我需要在选择控件中显示大约 6000 个名称。我正在使用敲除来检索这些记录,但由于返回的数量很大,页面需要大约 30 秒才能加载。如果不将这些返回给控件,则只需 1 秒多一点。

有什么建议吗?也许是不同类型的选择选项?

【问题讨论】:

  • 我认为问题不在于数据量,而在于渲染具有这么多选项的
  • 6000 项太多了,在几个方面。传输的数据量,浏览器必须渲染它,但主要是用户体验 - 你真的希望有人从 6000 个列表中选择项目吗?在这么多数据出现在用户面前之前,肯定应该进行一些服务器端过滤吗?
  • 有了这么多数据,我会考虑使用自动完成或过滤解决方案。允许用户输入前几个字符,然后从内存列表或服务器获取过滤列表。
  • 即使在我的慢速 PC (Celeron @ 2GHz) 上,KO 也会在 ~4 秒内附加 5000 个选项。 jsfiddle.net/2c5wr8u6 检查您的代码是否没有将名称一个接一个地附加到可观察数组,而是将它们附加到 pushAll 或通过完整的内容替换。

标签: html twitter-bootstrap knockout.js web-controls


【解决方案1】:

有了这么多的数据,将它们全部塞进<select> 是很糟糕的用户体验。

您应该改为使用自动完成/预输入插件。

有一些专门针对 Knockout 的实现:

使用引导程序:http://billpull.com/knockout-bootstrap/?#typeahead

使用 jQuery UI:https://github.com/rniemeyer/knockout-jqAutocomplete

还有一些香草,您可以将自己连接到 Knockout:

选择2:https://select2.github.io/

完全:http://complete-ly.appspot.com/examples/booking.html

提前输入:https://twitter.github.io/typeahead.js/

【讨论】:

    猜你喜欢
    • 2010-10-12
    • 2010-12-24
    • 1970-01-01
    • 2013-04-04
    • 2011-06-29
    • 2018-04-24
    • 1970-01-01
    • 1970-01-01
    • 2019-11-20
    相关资源
    最近更新 更多