Я реализую бесконечный свиток на Метеор, чтобы отобразить сетку изображений, связанных с большой коллекцией.Метеор бесконечный прокрутки: запрет подписываться на элементы RERender
Когда пользователь находится в конце страницы, я подписываюсь на большее количество элементов, и я увеличиваю количество отображаемых изображений (через мой шаблон.helper).
//SERVER
Meteor.publish('generalMusics', function(limit){
return Musics.find({}, {limit: limit});
});
//CLIENT: when the template is created and when the limit of data increases
//it subscribes again
Template.t_elementSubHeader.onCreated(function() {
Session.set('reqLimit',50);
var self = this;
//Everytime reqLimit changes I redo the subscribe
this.autorun(function(){
self.subscribe('generalMusics', Session.get('reqLimit'));
});
//CLIENT: more elements are sent to the template when reqLimit increases
Template.t_elementSubHeader.helpers({
data: function() {
return Musics.find({}, {limit : Session.get('reqLimit')});
}
});
//Also on client, when the user reach the bottom of the page
Session.set('reqLimit',Session.get('reqLimit')+50);
Это хорошо работает, но все элементы шаблона являются повторным рендерингом, и для этого требуется некоторое время. Это очень неудобно для пользователя, я думаю, это требует времени, потому что я показываю картинки, а не текст (мы уже сжимаем фотографии до минимального размера).
Проблема заключается в том, что подписаться, чтобы повторить все элементы шаблона.
Как я могу добавить только новые элементы и предотвратить повторный рендеринг уже отображаемых элементов при подписке?
Мое приложение будет находиться на мобильных устройствах, поэтому я не могу подписаться на множество элементов, а затем просто увеличиваю ограничение в помощнике шаблона.
Пожалуйста, создайте [mcve] – JimHawkins
Некоторый код действительно поможет в диагностике проблемы – Ankit
Я добавил пример – Rzqt