Я в процессе изучения метеора. Я следовал руководству по созданию микроскопа. Если кто-то отправит сообщение, метеор повторно отобразит шаблон для всех пользователей. Это может быть очень раздражающим, если есть сотни сообщений, тогда пользователь вернется к началу страницы и потеряет информацию о том, где он был. Я хочу реализовать что-то похожее на то, что есть в facebook. Когда новый пост отправлен, шаблон не отображается, а появляется кнопка или ссылка. Нажатие на нее приведет к повторному рендерингу шаблона и отображению новых сообщений.
Я думал об использовании observeChanges
в коллекции для обнаружения любых изменений, и это не позволяет странице показывать новые сообщения, но единственный способ показать их - перезагрузить страницу.
Meteor.publish('posts', function(options) {
var self = this, postHandle = null;
var initializing = true;
postHandle = Posts.find({}, options).observeChanges({
added: function(id, post) {
if (initializing){
self.added('posts', id, post);
}
},
changed: function(id, fields) {
self.changed('posts', id, fields);
}
});
self.ready();
initializing = false;
self.onStop(function() { postHandle.stop(); });
});
Это правильный путь? Если да, то как мне предупредить пользователя о новых сообщениях? Иначе, что было бы лучшим способом реализовать это?
Спасибо