5

Estoy desarrollando aplicaciones GWT fuera de línea utilizando almacenamiento local HTML5. Me gustaría guardar/almacenar en caché los objetos de transferencia usando com.google.gwt.storage.client.Storage (introducido en la versión 2.3). Pero el problema es que, por ahora (versión 2.3), el Almacenamiento solo puede guardar los valores de cadena.Utilizando el mecanismo de serialización/deserialización de RPC integrado en GWT

¿Existe alguna posibilidad de usar el mecanismo de serialización/deseralización de rpc integrado de GWT desde el código del lado del cliente? De modo que seré capaz de serializar objetos de transferencia y almacenarlos en Almacenamiento Local y recuperarlos cuando sea necesario y deserializar el contenido.

Respuesta

1

GWT Docs tiene esto que decir:

almacenamiento local es String almacenamiento

almacenamiento local de HTML5 guarda los datos en forma de cadena como pares de valores clave. Si los datos que desea guardar no son datos de cadena , usted es responsable de la conversión hacia y desde la cadena al usar LocalStorage. Para las clases de proxy utilizadas con GWT RequestFactory, puede utilizar RequestFactory # getSerializer() para hacer serialización de cadenas . Para objetos no proxy, puede usar JSON stringify y analizar.


EDIT:

RequestFactory#getSerializer() devuelve una implementación de ProxySerializer. Pero

ProxySerializer Serializa gráficos de objetos EntityProxy. Un ProxySerializer está asociado con una instancia de ProxyStore cuando se crea a través de RequestFactory.getSerializer (ProxyStore).

Así que no puede usarlo para serializar objetos arbitrarios. Solo los objetos EntityProxy se pueden serializar de esta manera. La documentación de GWT no menciona ningún método para realizar dicha serialización para objetos que no sean EntityProxy, por lo que creo que es seguro suponer que hasta el momento no existe una solución lista para hacerlo. Para objetos que no sean EntityProxy, los documentos GWT (citados anteriormente) recomiendan el uso de la serialización JSON.

+0

Me gustaría usar el método de biblioteca de GWT para serializar/deserializar objetos, no JSON. ¿Puedes dar un ejemplo sobre cómo hacerlo usando RequestFactory # getSerializer()? – AKFA

+0

ver respuesta actualizada arriba –

Cuestiones relacionadas