【问题标题】:Drop down with search feature for over 300k records下拉搜索功能超过 30 万条记录
【发布时间】:2019-11-16 14:19:15
【问题描述】:

GUI 中有一个多选下拉菜单,其中包含超过 30 万条记录。由于数据量巨大,GUI 的速度下降了 5 分钟以上。我想要

  1. 引入有助于查找正确记录的搜索选项
  2. 减少加载时间 - 这是我的首要任务。

我们必须从数据库中提取 30 万条记录并发送到需要大约 12mb 数据的浏览器

我尝试将其框架为 json 数据,但加载时间仍然相同

【问题讨论】:

  • 欢迎来到 Stack Overflow!向浏览器发送如此大量的数据可能不是一个好主意。请记住,用户永远不会看到所有这些。
  • 改用自动完成控件。用户永远不会滚动浏览所有这些来找到一个选项

标签: javascript jquery search dropdown autosuggest


【解决方案1】:

这绝对是向客户端发送这么多数据没有多大意义的情况。如果您的首要任务是减少加载时间,则需要在服务器上进行处理。

用户的输入可以通过 AJAX 请求发送到您的服务器。然后,自动完成功能会显示服务器的响应数据。这是一个非常少量的数据来回设置,完全不会影响加载时间,因为它是异步请求。

这里的另一个问题是您的数据库性能。这取决于您通常获得多少用户。如果您有大量流量,则可能需要调整您的数据库以针对这种情况对其进行优化。另一种选择是将数据构建为 JSON 并将其保存在静态文件中。如果数据不经常更改或根本不更改,这将是可行的。

【讨论】:

  • 感谢您的回答。但是我相信只有在文本框中才能实现自动完成功能。我需要多选下拉菜单。
  • @minnalprathap 解决方案是允许用户连续选择多个值 - 一旦他们选择了一个值,将其显示在页面上文本框下方的另一个元素中(并将其存储在JS 数组,如有必要)。然后清除文本框并允许他们搜索另一个值。这是一种很常见的技术。你不需要需要一个多选下拉菜单,你只是没有用你的想象力去想另一种方式。多选下拉菜单永远无法处理如此大量的数据 - 由于查找任何内容所需的滚动量,它将无法使用。
  • @ADyson 是有道理的。非常感谢。我会尝试这种方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-09
  • 2013-11-02
  • 1970-01-01
  • 2021-03-15
  • 1970-01-01
  • 2020-10-31
  • 1970-01-01
相关资源
最近更新 更多