Nie znalazłem żadnej dokumentacji na temat flash.discard()
. Co to robi?Co robi flash.discard? Czym się różni od flash.clear()?
5
A
Odpowiedz
5
Po patrząc na kod , to rozumiem:
- Dane Flash są ostatecznie przeznaczone do przechowywania danych między żądaniami.
- Ponieważ gra jest bezstanowa, ten stan jest zapisywany w pliku cookie sesji, który jest wysyłany do klienta i wysyłany z następnym żądaniem.
- Mapa danych to dane, które pochodzą od klienta za pośrednictwem pliku cookie.
- Wyjściowa mapa to dane, które aplikacja Play zapisuje w instancji Flash.
- Jeśli dane uległy zmianie, dane na zewnątrz mapy służą do budowania zawartości pliku cookie w celu odesłania do klienta.
Z tego powodu powiedziałbym, że flash.discard() jest używany do wyrzucania wszystkiego, co trafiłoby do klienta, a flash.clear() jest używany do wyrzucania wszystkiego, co pochodzi od klienta ...
2
To dobre pytanie. Chociaż nie wiem, czy odpowiedź, kod źródłowy na github powinno pomóc:
https://github.com/playframework/play/blob/master/framework/src/play/mvc/Scope.java
Szybki rzut oka pokazuje Zakres utrzymuje dwa hashmaps, jeden o nazwie data
i drugi o nazwie out
. Oboje przechowują te same informacje. Ale flash.clear() działa na data
i flash.discard() działa na out
... Śmieszne ...
Lepsze połączenia obu, tak na wszelki wypadek =)
Dobre wyjaśnienie, wydaje mi się oczywiste, biorąc pod uwagę działanie lampy błyskowej, po prostu o tym nie myślałem. – ripper234