コレクション (GraphData) サブスクリプションを Meteor.autorun で変更して、クライアント側のキャッシュを制限しようとしています。しかし、サーバー側は、セッション (ブラウザー GUI) が変更された後にのみデータを公開することに気付きました。あれは正しいですか?
クライアント側には、次の coffeescript コードがあります。
Meteor.startup ->
Meteor.autorun () ->
Meteor.subscribe 'graphdata', Session.get 'graph_name'
関数 draw_graph では、
Session.set 'graph_sub', false
Session.set 'graph_name', item_name
ready = Session.get 'graph_sub'
while !(ready)
Meteor.setTimeout (ready = Session.get 'graph_sub'), 1000
Do something with the GraphData subscription
私が持っているサーバー側で
Meteor.startup ->
Meteor.publish 'graphdata', (name) ->
if name?
GraphData.find({name: name})
Session.set 'graph_sub', true
サーバー側のパブリッシュが Session.set 'graph_name', item_name の後にトリガーされることを期待していましたが、while ループでスタックしていることに気付きました。
私の理解は正しいですか?とにかく、セッションを変更せずにサーバー側でセッション変数の変更が通知されるようにするにはどうすればよいですか?