ฉันกำลังอยู่ในขั้นตอนการเรียนรู้ดาวตก ฉันทำตามบทช่วยสอนเพื่อสร้างกล้องจุลทรรศน์ หากมีใครส่งโพสต์ดาวตก จะแสดงเทมเพลตใหม่ให้กับผู้ใช้ทุกคน สิ่งนี้อาจเป็นเรื่องที่น่ารำคาญมากหากมีโพสต์หลายร้อยโพสต์ ผู้ใช้จะกลับมาที่ด้านบนสุดของหน้าและติดตามว่าเขาอยู่ที่ไหน ฉันต้องการใช้สิ่งที่คล้ายกับสิ่งที่ 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(); });
});
นี่เป็นเส้นทางที่ถูกต้องหรือไม่? หากใช่ ฉันจะแจ้งเตือนผู้ใช้เมื่อมีโพสต์ใหม่ได้อย่างไร มิฉะนั้นจะมีวิธีใดที่ดีกว่าในการดำเนินการนี้
ขอบคุณ