How to deal with data that doesn't change frequently?

My app includes a search page. On this page, I would like to show

  • the most popular search terms and
  • recent search terms (“others searched”)

This kind of data only needs to be updated once in a while, let’s say every 30 minutes, but it does not require full reactivity. To reduce resource consumption on the server side, I would like to find a way to retrieve this kind of “semi-reactive” data that does not use the full reactive power (and resource consumption) of a full pub/sub.

Calling a method only once on template rendering would be an option, but this would still be called each time the template is shown, causing unnecessary traffic. Polling a method globally via a Meteor.interval() cycle would be an option, too, but still not optimal, because all data would be transfered on every call, which is not ideal for a mobile app.

So I am basically looking for a solution / package / whatsoever that behaves like pub/sub, but in a “throttled” way. The package that comes closest and I am aware of is meteor-search-source, which allows to cache search results. Are there other alternatives?

Underscore has a throttle method which might be of use.