jQuery,Bootstrap和大列表(7000 +项目)与搜索/输入提前
jQuery, Bootstrap and big list (7000+ items) with search/typeahead
我知道我没有任何代码示例,但这是因为我不确定如何继续。
我正在使用jQuery和Bootstrap构建一个网站,并将显示大约7000 +项目的列表。
我正在使用 $.getJSON(...) 从我的 PostgreSQL 数据库中获取项目列表。这个电话打得很快。
我想创建一个能够提前输入搜索/过滤的列表,其中显示与用户正在键入的元素相对应。
我对多次调用我的 PostgreSQL 数据库不感兴趣 - 如果可能的话 - 但也不想用 DOM 元素等杀死浏览器。
继续的最佳方法是什么,Bootstrap 中是否有任何现有组件或...?
ForerunnerDB 将是一个很好的库:http://forerunnerdb.com/
它是一个客户端NoSQL数据库。您将能够将数据插入collection
并创建一个视图,该视图可以处理数据到 DOM 的自动绑定。 加载超过 7000 个 DOM 元素是一项艰巨的任务,延迟加载可能是您的前进方向;我的建议是一次显示 100 条记录,当用户接近列表底部时,会触发更多 DOM 元素被渲染:
//Take data from a collection, query it to build a view, and link it to the DOM
db.view('dataView')
.query({
/*
* Filter documents in the collection
* calling db.view('dataView').find() will now only pull records from the 'data' collection which contain a key `verified` that have the value 'true'
*/
verified: true
})
.queryOptions({
//Apply options
//calling db.view('dataView').find() will limit the result to the first hundred records
$limit: 100
})
.from('data')
.link('#targetElement', 'templateName');
要再次取消视图链接,请调用 db.view('dataView').unlink()
。
如果要呈现更多记录,只需执行以下操作:
var query = db.view('dataView').query();
query.$limit += 100;
db.view('dataView').query(query)
这将自动呈现接下来的一百条记录。
结合使用.query({})
和.queryOptions({})
将允许您以几乎任何您想要的方式操作视图的数据,我已经能够使用这种技术轻松构建一些复杂的过滤和搜索。
相关文章:
- jQuery用fiddle在标题中查询移动搜索输入(标题的覆盖)
- 单击时在搜索输入上附加文本
- d3:搜索输入以返回嵌套的数据值
- 控制器作为搜索输入表单的语法
- 如何解决区分大小写搜索的搜索输入问题
- 当用户使用JavaScript键入内容时,如何设置以搜索输入为中心
- 搜索输入问题显示滚动
- 基于多搜索输入筛选ngrepeat
- 如何将搜索输入框的值更改为用户输入值
- jQuery,Bootstrap和大列表(7000 +项目)与搜索/输入提前
- HTML 和 JavaScript 使搜索输入为 URL 做好准备
- 初始化 jQuery 数据表中的搜索输入
- 搜索输入字段以搜索 JavaScript 数组 - 如何验证空输入框
- 在 keyUp 上搜索输入
- Ajax下拉列表,用于搜索输入以使用雅虎天气查找天气
- 如何在 JavaScript/jQuery 中集成下拉菜单和搜索输入框
- 数据表清除搜索输入和正则表达式
- 使用固定搜索输入引导多选
- 根据图像标题的搜索输入过滤图像
- jquery不根据搜索输入从json中获取结果