27

ページが更新されると、Meteor セッションはリセットされますか?

どういうわけか私は彼らがそうするとは思わなかったが、そうであるように思われる. それらを持続させる方法はありますか?

そうでない場合、これに対する最良の解決策は何ですか?

ユーザーがまだ登録されていなくても、ユーザーが更新した場合 (このデータはユーザーに固有です)、同じデータを表示できるようにしたいと考えています。

4

5 に答える 5

10

実際にできることは、set() が呼び出されたときに Amplify のストアに値を格納する Session の「サブクラス」を作成することです。Session のすべてのリアクティブ プロパティを自動的に継承します。これがコードです、それは私のために働いた:

SessionAmplify = _.extend({}, Session, {
  keys: _.object(_.map(amplify.store(), function(value, key) {
    return [key, JSON.stringify(value)]
  })),
  set: function (key, value) {
    Session.set.apply(this, arguments);
    amplify.store(key, value);
  },
});

すべての Session.set/get 呼び出しを SessionAmplify.set/get 呼び出しに置き換えるだけです。set() が呼び出されると、親の Session メソッドが呼び出され、amplify.store() も呼び出されます。「サブクラス」が最初に作成されると、増幅のストアにあるすべてのものをそのキー内にロードし、get() ですぐに取得できるようにします。

ここでリーダーボードの例の実際のバリエーションをテストできます: https://github.com/sebastienbarre/meteor-leaderboard

于 2013-02-02T05:54:15.667 に答える
1

したがって、これを行う最善の方法は、amplifyJS パッケージを使用することだと思います。

これは、彼らがそれをどのように使用したかを示す誰かの要点です: https://gist.github.com/2865146

于 2012-11-14T18:52:00.987 に答える
0

これSessionは、リアクティブなグローバル キー バリュー ストアです。

http://docs.meteor.com/#session

Session は、キーと値のペアの任意のセットを格納するために使用できるグローバル オブジェクトをクライアントに提供します。現在選択されているアイテムなどをリストに保存するために使用します。

Session の特別な点は、リアクティブであることです。テンプレート内から Session.get("currentList") を呼び出すと、Session.set("currentList", x) が呼び出されるたびにテンプレートが自動的に再レン​​ダリングされます。

クライアントに何かを永続化する必要がある場合localstorage、古いブラウザーが気になる場合は、ブラウザーまたは Cookie を使用できます。

于 2012-11-14T09:07:32.823 に答える