performance - Is it worth batching subscriptions in Meteor? -


when displaying list of documents, can clearer write subscription @ document level (vs @ list level), in case template reused somewhere else instance. less efficient or meteor handling things magically?

more precisely, can put document logic in document template:

template.itemslist.helpers({   items: function() {     return this.itemsids.map(function(id) { return { _id: id }; });   }, });  <template name="itemslist">   {{#each items}}{{> item}}{{/each}} </template>   template.item.oncreated(function() {   this.subscribe('item', this.data._id); });  <template name="item">   {{#if template.subscriptionsready}}     ...   {{/if}} </template> 

or subscribe once documents @ list level:

template.itemslist.oncreated(function() {   this.subscribe('items', this.data.itemsids); });  template.itemslist.helpers({   items: function() {     return items.find({_id: {$in: this.itemsids}});   }, });  <template name="itemslist">   {{#if template.subscriptionsready}}     {{#each items}}{{> item}}{{/each}}   {{/if}} </template>  <template name="item">   ... </template> 

it looks second approach more efficient, since there 1 call subscription. if talking standard http requests here, there'd no doubt. since meteor socket based , handle lot of things under hood, wondering it worth trouble move logic away document list.

generally better call subscribe once. when run subscribe new params publish method re-runs, makes call db fetch needed documents , sends client. better , more efficient make 1 call db.

but makes sense if sure want display items , if there not many items in items collection.

if there big number of items (hundreds or more) better kind of pagination avoid downloading documents client.


Comments

Popular posts from this blog

sublimetext3 - what keyboard shortcut is to comment/uncomment for this script tag in sublime -

java - No use of nillable="0" in SOAP Webservice -

ubuntu - Laravel 5.2 quickstart guide gives Not Found Error -