Javascript 关于在Backbone.js应用程序中进行搜索的想法
我现在拥有的Javascript 关于在Backbone.js应用程序中进行搜索的想法,javascript,backbone.js,Javascript,Backbone.js,我现在拥有的 产品模型/视图 产品收集 产品列表视图 相当直观的寻呼机视图 当然还有路由器 路由器 问题 我是否应该重用renderProductsList方法 我知道可以对集合调用where,filter之类的函数?我怎么用这个 我应该缓存获取的结果吗 如何重用我的寻呼机?我应该在options参数中传递url模式吗 嗯。。。如何重建应用程序以使搜索成为可能,例如,此路由/搜索/:术语/:页面 我对使用主干网不感兴趣。分页如果我理解正确,您只是有一个产品列表,并且希望创建一些过
- 产品模型/视图李>
- 产品收集李>
- 产品列表视图李>
- 相当直观的寻呼机视图李>
- 当然还有路由器李>
问题
- 我是否应该重用
方法李>renderProductsList
- 我知道可以对集合调用
,where
之类的函数?我怎么用这个filter
- 我应该缓存获取的结果吗
- 如何重用我的寻呼机?我应该在
参数中传递url模式吗options
- 嗯。。。如何重建应用程序以使搜索成为可能,例如,此路由
/搜索/:术语/:页面
我对使用主干网不感兴趣。分页如果我理解正确,您只是有一个产品列表,并且希望创建一些过滤器。所以你想知道怎么做。我认为这取决于很多因素。
不管怎样,你一开始就把所有东西都拿来了吗?如果是的话,当然你只会使用JS。如果没有:
缓存结果?嗯,我不知道你会怎么做,或者我想这真的是一件麻烦事。但这取决于: 传输的数据量大吗?。。 有相当多的事情要考虑,问题开始于路由器。只调用一条路由(主干网绝对不能调用多条路由,它将在第一个匹配的模式时停止,与您拥有的路由器数量无关),您必须加载搜索页面,进行筛选,然后转到正确的页面。
tl;我想我们没有足够的信息来真正帮助你
至于如何使用
where
等等,我认为这是一个非常完整的主题(我真的不知道你想知道关于这些的什么)。是的,你可以做你想做的任何事情,但是。。。您想要实现什么?我只想使用给定的术语执行搜索,并使用产品列表视图进行搜索。我不知道是应该过滤客户端的缓存数据,还是应该根据每个请求点击服务器?我只需要知道其他人在这种情况下会做什么。我想说的是使用服务器端过滤。毕竟,您希望用户看到实际存在的内容,如果需要,您可以始终在服务器端添加缓存。不要预先优化。
var AppRouter = Backbone.Router.extend({
routes: {
'': 'list',
'!/products': 'list',
'!/products/page/:page': 'list'
//, '!/search/:term/:page': 'some_handler'
}
});
appRouter.on('route:list', function(page) {
renderProductsList(page);
});
var renderProductsList = function(page) {
require(['collections/ProductsList', 'views/ProductListView', 'views/PagerView'],
function(ProductsList, ProductListView, PagerView) {
var p = page ? parseInt(page, 10) : 1;
var productsList = new ProductsList();
productsList.fetch({
success: function() {
var $container = $("#content-region");
$container.html(new ProductListView({
model: productsList,
page: p
}).el);
// attach pager
var $pager = new PagerView({
// pager options
}).$el;
// ...
},
error: function() {
// handle the error
}
});
});
}