具有大型(70,000+ 项)数据集的高效 jQuery 实时搜索
Posted
技术标签:
【中文标题】具有大型(70,000+ 项)数据集的高效 jQuery 实时搜索【英文标题】:Efficient jQuery live search with large (70,000+ item) data set 【发布时间】:2020-06-07 12:55:32 【问题描述】:我正在为我的 WordPress 网站上的页面创建一个新表单,并且在此表单的其中一个输入上,我想使用 jQuery 添加一个实时搜索功能,该功能根据用户键入的内容列出可能的选项迄今为止。我正在过滤的数据集是一个非常大的 JSON 对象,存储在我的主题中,其中包含超过 70,000 个键/值对。因为我目前在每个 keyup 上循环遍历整个对象,所以我实现的实时搜索非常慢并且经常冻结。
使用 jQuery 对大型数据集执行实时搜索的最有效方法是什么?
【问题讨论】:
What's the most efficient way to perform a live search on large data sets using jQuery?
没有。这么多数据应该保存在可扩展的服务器端数据库中,并在那里进行查询。
【参考方案1】:
jQuery 用于 DOM 操作,在这里没有用处。
javascript 可以解决这个问题,但是,随着您提供的数据的增加,它也将变得越来越明显,它应该可以通过缓存内存或数据库中的服务器进行访问。
JSON 的大小可能会影响页面加载速度,并且对于某些内存可用性小的设备,可能意味着页面根本无法加载。
除此之外,您需要做的是在键中构建一个查找结构。这种设计模式称为"trie"。没有任何类型的示例代码可以继续,为了示例而在这里实现将是浪费时间。
我建议您查看链接的 wikipedia 文章以获取有关一般主题的一些教育,然后在 github 上查找一个库,该库为 json 搜索提供了某种 trie 功能;当然,除非您有足够的信心自己实施。
【讨论】:
以上是关于具有大型(70,000+ 项)数据集的高效 jQuery 实时搜索的主要内容,如果未能解决你的问题,请参考以下文章