gpt4 book ai didi

javascript - 订阅大收藏

转载 作者:行者123 更新时间:2023-12-03 11:33:45 26 4
gpt4 key购买 nike

我有一个收藏,最近变得非常大。我曾经订阅过它的所有文档,我使用 myapp 中的搜索字段对其进行搜索。

对于这个较大的集合,加载需要很长时间。

您有什么建议可以减少加载时间,但仍然可以对整个集合进行搜索?

我可以通过客户端订阅集合的一部分(执行我的搜索查询)吗?

我现在拥有的:

在我的路由器上:

waitOn: function(){
return [Meteor.subscribe('files')];
},

在我的客户端上(单击搜索按钮时):

'click #search':function(e,context) {
Session.set("keywords",$("#search_input").val());
}

模板

Template.filwsList.helpers({
files_results: function () {
var keywords = new RegExp(Session.get("keywords"), "i");
var result = Files.find({$or:[{name:keywords},{description:keywords},{tags:keywords}]},{sort: {updatedAt: 1}});
return result;
}
})

最佳答案

解决方案是定义一个 publish function在将搜索关键字作为参数的服务器上。

Meteor.publish('files', function publishFunction(keywords) {
check(keywords, String); // https://docs.meteor.com/#/full/check_package
return Files.find({
$or: [
{ name: keywords },
{ description: keywords },
{ tags: keywords }
]}, {
sort: ...
limit: ...
fields: ...
}
);
});

然后在客户端上,将关键字作为参数传递:

waitOn: function () {
return Meteor.subscribe('files', keywords);
}

还值得注意的是,可能已经有一些软件包可以执行您想要的操作,例如autocompletedatatables .

另请参阅了解 Meteor 发布/订阅。

关于javascript - 订阅大收藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26622366/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com