Mit Meteor möchte ich die effizienteste Methode zur Verwendung der automatischen Vervollständigung von JQuery UI mit großen Datenmengen auf der Serverseite verstehen.Kanonische Methode zur Verwendung von JQueryUI Autocomplete mit Meteor
Ich habe zwei Arbeitsvorschläge und würde gerne Meinungen zu den Unterschieden hören und ob es bessere Möglichkeiten gäbe, das Gleiche zu tun.
Mit pub/sub:
// Server
Meteor.publish("autocompleteData", function (theSearchTerm) {
var query = {
name: { $regex: theSearchTerm, $options: 'i'}
};
return MyData.find(query, options);
});
// Client
Template.myTemplate.rendered = function() {
initAutocomplete($(this.find('.my.autocomplete')));
};
var initAutocomplete = function(element){
element.customAutocomplete({
source: function(request, callback){
var sub = Meteor.subscribe('autocompleteData', request.term, function(){
var results = MyData.find({}, {limit: 50}).fetch();
sub.stop();
callback(results);
});
},
select: function(event, ui){
// Do stuff with selected value
}
});
};
Entfernte Funktionen (Meteor.Methods):
// Server
Meteor.methods({
getData: function(theSearchTerm) {
var query = {
name: { $regex: theSearchTerm, $options: 'i'}
};
return MyData.find(query, {limit: 50}).fetch();
});
});
// Client
Template.myTemplate.rendered = function() {
initAutocomplete($(this.find('.my.autocomplete')));
};
var initAutocomplete = function(element){
element.customAutocomplete({
source: function(request, callback){
Meteor.call('getData', request.term, function(err, results){
callback(results);
});
},
select: function(event, ui){
// Do stuff with selected value
}
});
};
Which, wenn entweder ist das der effizienteste Weg zur Einrichtung einer serverseitigen zur automatischen Vervollständigung Meteor mit einem großen Datensatz verwenden?
Ich bin bei weitem kein Experte auf Meteor (siehe meine vielen Beiträge hier um Hilfe bitten), aber es scheint falsch, dass Sie pub/sub tun und eine Methode haben, um Data zu bekommen. Nicht sicher, warum Sie beide brauchen würden. – CodeChimp
@CodeChimp Ja, ich weiß ... Ich habe es auch funktioniert mit reinen Pub/Sub - Ich werde die Frage aktualisieren, um es klarer zu machen. Ich denke, was ich wirklich fragen sollte ist: Startet und stoppt ein neues Sub bei jedem neuen Suchvorgang den performantesten Weg, dies zu tun? –
Nochmal kein Experte, aber ich denke, dass das Stoppen eines Abonnements einfach bedeutet, dass Sie nicht mehr auf Änderungen des Herausgebers warten. Jemand mit mehr Meteor Erfahrung sprechen Sie bitte, wenn ich hier weit weg bin. Wenn ich in meiner Aussage richtig bin, denke ich, dass der Performance-Hit im Laufe der Zeit kontinuierliche Updates (für das Nicht-Abbestellen) von VS sein würde. ein möglicher größerer Treffer beim Abonnieren bei Bedarf. Ich denke, dass das Spätere gemildert werden könnte, indem man den Umfang Ihrer Publikation einschränkt, was Sie anscheinend tun. – CodeChimp