2012-01-30 1 views

答えて

5

、両方を呼び出しますこれは私が理解しているものです:

  1. フラッシュデータは最終的に要求間のデータを格納するためのものです。
  2. Playはステートレスなので、その状態はセッションクッキーに保存されます。セッションクッキーはクライアントに送信され、次のリクエストで返信されます。
  3. データマップは、クッキー経由でクライアントから送信されるデータです。
  4. アウトマップは、FlashアプリケーションがFlashインスタンスに書き込むデータです。
  5. データが変更された場合は、アウトマップ内のデータを使用してクッキーの内容を構築し、クライアントに送り返します。

したがって、私は、flash.discard()はクライアントに行くすべてを捨てるために使われ、flash.clear()はクライアントから来たもの...

+0

良い説明、私はそれが明らかにフラッシュが動作する方法を考えると、私はそれを考えなかったと思います。 – ripper234

2

これは良い質問です。私はどちらかの答えを知っていませんが、githubののソースコードは役立つはず:

https://github.com/playframework/play/blob/master/framework/src/play/mvc/Scope.java

一目スコープは2つのハッシュマップ、outという名前の1という名前dataやその他を保ち示しています。 両者は同じ情報を格納します。しかし、())dataとflash.discard(に作用さflash.clearがoutに作用している...おもしろ...

は、より良いコードを見た後、念のため=)

+0

ええ、私は投稿する前にコードを見ました...それは私の理解に役立たなかった。 – ripper234

+0

@dertoniの回答を参照してください。 – ripper234

関連する問題