2017-01-03 5 views
1

私の状況は次のとおりです。 Mongoには数ミリ秒ごとに新しいアイテム、たとえばログアイテムで更新されるコレクションがあります。私はこれらの項目をテンプレートでpublish/subscribeを介してフロントエンドに表示していますが、ボリュームが大きいので、リストが頻繁に更新されて読みにくいです。私が望むのは、リストを(数秒ごとに)更新することだけです。私はクライアントとサーバー側の両方でスリープ/タイムアウトを使用しようとしましたが、例えばhereと表示されていますが、これまで成功していませんでした。Meteorで時間間隔ごとにパブリッシュ/サブスクライブする

  • これでもpublish/subscribeを使用できますか、またはMeteor.setIntervalを使用してポーリングの仕組みを切り替えることはできますか?
  • 時間間隔の部分がパブリッシュまたはサブスクライブ側にあるべきですか?
  • 自分のシナリオでpublish/subscribeが正しい場合、更新されたデータを数秒ごとに表示するにはどうすればよいですか?
+0

コレクションオブザーバーで試してみましたか?ドキュメントがコレクションに追加されるとリストが追加されますか?あなたの全体のリストを更新するべきではありません。 –

答えて

-1

あなたはこれを行うには、あなたのTemplate.name.onCreatedに反応変数と自動実行を使用することができるはずです。

Template.name.onCreated(function(){ 
var instance = this; 
instance.now = new ReactiveVar(new Date()); 
instance.autorun(function(){ 
    var test = now.get(); 
    instance.subscribe('yourSubNameHere'); 
    setTimeout(function(){ //will update now and fire the autorun again 
     instance.now.set(new Date()); 
    },timeoutHere) 
}); 
)}; 

あなたのコレクションが大なれば私はこれをやってお勧めするが、あなたの出版の限界は多分でしょうか?

+0

これはどのように動作するのか分かりません。これはちょうど再購読していませんか? – zim

+0

はいそうです。あなたがしようとしていることではありませんか? –

+0

はお客様のドキュメントがクライアントまたはサーバー側に追加されていますか? –

関連する問題