Saya sedang dalam proses belajar meteor. Saya mengikuti tutorial membuat mikroskop. Jika seseorang mengirimkan postingan, meteor akan merender ulang template untuk semua pengguna. Hal ini bisa sangat mengganggu jika ada ratusan postingan maka pengguna akan kembali ke bagian atas halaman dan kehilangan jejak di mana dia berada. Saya ingin menerapkan sesuatu yang mirip dengan apa yang dimiliki facebook. Ketika postingan baru dikirimkan, template tidak dirender, tombol atau link akan muncul. Mengkliknya akan menyebabkan template dirender ulang dan menampilkan postingan baru.
Saya sedang berpikir untuk menggunakan observeChanges
pada koleksi untuk mendeteksi perubahan apa pun dan itu menghentikan halaman untuk menampilkan postingan baru tetapi satu-satunya cara untuk menunjukkannya adalah dengan memuat ulang halaman.
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(); });
});
Apakah ini jalan yang benar untuk diambil? Jika ya, bagaimana cara memberi tahu pengguna tentang postingan baru? Jika tidak, cara apa yang lebih baik untuk menerapkan ini?
Terima kasih