No he encontrado ninguna documentación en flash.discard()
. ¿Qué hace?¿Qué hace flash.discard? ¿Cuál es la diferencia de flash.clear()?
5
A
Respuesta
5
Después de mirar el código , esto es lo que entiendo:
- Los datos de Flash son, en última instancia, para almacenar datos entre las solicitudes.
- Dado que Play no tiene estado, ese estado se guarda en una cookie de sesión, que se envía al cliente y se envía de vuelta con la siguiente solicitud.
- El mapa de datos es la información que proviene del cliente a través de la cookie.
- Out Map es la información que la aplicación Play escribe en la instancia de Flash.
- Si los datos se modifican, los datos en el Mapa de salida se utilizan para generar el contenido de la cookie para enviar de vuelta al cliente.
Así que de esto, diría, que flash.discard() se utiliza para descartar todo lo que iría al cliente, y flash.clear() se utiliza para descartar todo lo que vino del cliente ...
2
Esa es una buena pregunta. Aunque no sé la respuesta tampoco, el código fuente en GitHub debería ayudar:
https://github.com/playframework/play/blob/master/framework/src/play/mvc/Scope.java
Un vistazo rápido muestra el alcance mantiene dos HashMaps, uno llamado data
y otra llamada out
. Ambos almacenan la misma información. Pero el flash.clear() está actuando sobre data
y flash.discard() está actuando sobre out
... divertido ...
Mejor llama tanto, por si acaso =)
Cuestiones relacionadas
- 1. SWT y AWT, ¿cuál es la diferencia?
- 2. ¿Cuál es la diferencia entre codificar/decodificar?
- 3. ¿Cuál es la diferencia entre ".equals" y "=="?
- 4. ¿Cuál es la diferencia de usar addEventListener?
- 5. Preferencias de Android: ¿cuál es la diferencia?
- 6. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 7. SET vs. SELECT - ¿Cuál es la diferencia?
- 8. Cuál es la diferencia entre $ y jQuery
- 9. ¿Cuál es la diferencia entre dict() y {}?
- 10. node.js vs. meteor.js ¿cuál es la diferencia?
- 11. ¿Cuál es la diferencia entre el
- 12. ¿Cuál es la diferencia entre System.Linq.Enumerable.WhereListIterator & System.Linq.Enumerable.WhereSelectListIterator?
- 13. Localización e internacionalización, ¿cuál es la diferencia?
- 14. CATALINA_OPTS vs JAVA_OPTS - ¿Cuál es la diferencia?
- 15. JavaScript Funciones autoejecutables: ¿cuál es la diferencia?
- 16. JIT vs NGen: ¿cuál es la diferencia?
- 17. Cuál es la diferencia entre = y: =
- 18. EQU vs DC.B. ¿Cuál es la diferencia?
- 19. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 20. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 21. ¿Cuál es la diferencia entre applicationDidReceiveMemoryWarning, didReceiveMemoryWarning?
- 22. ¿Cuál es la diferencia entre Response.Write() andResponse.Output.Write()?
- 23. ¿cuál es la diferencia entre:.! y: r !?
- 24. ¿Cuál es la diferencia entre estas funciones?
- 25. ¿Cuál es la diferencia entre {0} y ""?
- 26. ¿Cuál es la diferencia entre .ToString (+) y ""
- 27. ¿Cuál es la diferencia entre esos dos?
- 28. Cuál es la diferencia entre $ (...) y `...`
- 29. ¿Cuál es la diferencia entre() vs [] vs {}?
- 30. ¿Cuál es la diferencia entre window.innerWidth window.outerWidth?
Buena explicación, supongo que es obvio dado que el flash funciona, simplemente no pensé en eso. – ripper234