2012-07-19 106 views
5

我使用Backbone.js在页面上一次加载20个项目,当您向下滚动到底部时获取更多项目,直到没有任何内容从服务器中获取。延迟加载过滤项目

与此同时,我想要一个输入字段,当您键入一个名称时,它会过滤匹配的项目。

问题是,如果您还没有滚动到底部,并获取完整集合,输入过滤器将只匹配页面上当前的项目。

从技术上和视觉上将UI过滤与惰性加载项目相结合,最佳解决方案是什么?

编辑: 这里的真实场景是加载所有的facebook朋友,这些朋友可能会很慢,并与其他apis混搭起来。由于经验延迟,我不想一次加载所有内容。

+1

是否有技术限制,为什么你不加载所有的项目开始或主要是用户体验?知道这个问题的答案可能有助于制定一个答案你的问题... – alexwen 2012-07-19 01:08:22

+0

嗨亚历克斯,请参阅我的编辑。谢谢。 – Abadaba 2012-07-19 01:46:28

+0

懒惰加载...你有多少Facebook朋友流血? – Louis 2012-07-19 02:11:25

回答

1

当用户搜索时,为什么不用包含过滤器的提取重置集合?

Collection.fetch({项:$( “#搜索”)VAL()})

如果你设置你的后台API终点这个集合范围依照不同的术语PARAMS,那么你的集合只会包含与用户输入相匹配的服务器结果。

您还可以将初始抓取限制为用户输入的前3个字符,然后在继续输入时执行过滤客户端的其余部分。这就是说,如果您没有在第一次调用时限制搜索结果服务器端。