Wow Damien - I like it. Thanks for the tips.

On Tue, Dec 21, 2010 at 8:50 AM, Damien Picard <picard.dam...@gmail.com>wrote:

> Thank you for your advices.
>
> I think I will linearize the tree as a List by replacing the strong
> reference link between an Option and its childs to a String meaning the id
> (the id is an attribute) of the child options.
>
> Then, I will serialize the option list to a json String with flexjson and
> send it to the client over GWT-RPC.
>
> On the client, I think that the json String deserialization will be done
> quickly ; I've seen on StreamReader source code that the String
> deserialisation does not lead to a lot of compute time because the HTTP
> response is String itself. Then, I will deserialize this json String with
> the eval() method, and I will try to map it to my Option type with a
> JavaScript Overlay Types.
>
> And, if there is a need to split deserialization into multiple deferred
> command, I will split my json String into multiple json string before
> evaluating this with eval(), and do the eval() on each sub-sequence json
> string in a deferred command. Even if this split is not simple...
>
> What do you think about this solution ?
>
>
> 2010/12/20 David Chandler <drfibona...@google.com>
>
> Following up on George's post, here's the DeRPC doc. You can find a
>> little additional info by searching for "DeRPC" on the public issue
>> tracker. DeRPC was created to help with large object graph
>> serialization; however, DeRPC (NOT GWT-RPC) will likely be deprecated
>> eventually in favor of RequestFactory.
>>
>>
>> http://code.google.com/webtoolkit/doc/latest/DevGuideServerCommunication.html#DevGuideDeRPC
>> http://code.google.com/p/google-web-toolkit/issues/list
>>
>> /dmc
>>
>> On Sun, Dec 19, 2010 at 3:43 AM, Damien Picard <picard.dam...@gmail.com>
>> wrote:
>> > Hi,
>> >
>> > In a few words, I've got a problem with big object deserialization after
>> an
>> > RPC call.
>> > On Internet Explorer, the browser ask me to interrupt the script because
>> the
>> > deserialization process is too long.
>> >
>> > In fact, my RPC service returns a deep recursive tree, and some other
>> data,
>> > where the Item is called Option :
>> >
>> > The generated FieldSerializer looks like :
>> >
>> > public static void
>> > deserialize(com.google.gwt.user.client.rpc.SerializationStreamReader
>> > streamReader, Option instance) throws
>> > com.google.gwt.user.client.rpc.SerializationException{
>> >     //The childs of this Option node, defining the tree
>> >     setChildren(instance, (java.util.List) streamReader.readObject());
>> >     //Some other atomic data
>> >     (...)
>> >
>> >   }
>> >
>> > In my mind, the invocation of setChildren() involves that the childs
>> Options
>> > are deserialized too. And, because of my tree is too deep, this
>> > deserialization process leeds to have a "Would you like to interrupt the
>> > script ?" in IE6/7.
>> >
>> > I think I could resolve this problem by adding a deferred command in
>> this
>> > process :
>> >
>> > public static void
>> > deserialize(com.google.gwt.user.client.rpc.SerializationStreamReader
>> > streamReader, Option instance) throws
>> > com.google.gwt.user.client.rpc.SerializationException{
>> >     //The childs of this Option node, defining the tree
>> >     Command c = new Command(){
>> >         public void execute(){
>> >            setChildren(instance, (java.util.List)
>> > streamReader.readObject());
>> >         }
>> >     }
>> >     DeferredCommand.addPause();
>> >     DeferredCommand.addCommand(c);
>> >     //Some other atomic data
>> >     (...)
>> >
>> >   }
>> >
>> > But, to do that, I have to modify the generator of this serializer, and
>> i've
>> > not found where I can do that. So my questions are :
>> >
>> > Is it a good idea ?
>> > How can I modify /implement my own serializer generator for this tree ?
>> >
>> > P.S. : Furthermore, I will have to deal with asynchronism because of my
>> > deserialize method will returns before my tree will be totaly
>> deserialized ;
>> > but I will work on this in a second step.
>> >
>> > Thank you.
>> >
>> > --
>> > Damien Picard
>> > Axeiya Services : http://axeiya.com/
>> > gwt-ckeditor : http://code.google.com/p/gwt-ckeditor/
>> > Mon livre sur GWT : http://axeiya.com/index.php/ouvrage-gwt.html
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> Groups
>> > "Google Web Toolkit" group.
>> > To post to this group, send email to
>> google-web-tool...@googlegroups.com.
>> > To unsubscribe from this group, send email to
>> > google-web-toolkit+unsubscr...@googlegroups.com<google-web-toolkit%2bunsubscr...@googlegroups.com>
>> .
>> > For more options, visit this group at
>> > http://groups.google.com/group/google-web-toolkit?hl=en.
>> >
>>
>>
>>
>> --
>> David Chandler
>> Developer Programs Engineer, Google Web Toolkit
>> http://googlewebtoolkit.blogspot.com/
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Google Web Toolkit" group.
>> To post to this group, send email to google-web-tool...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-web-toolkit+unsubscr...@googlegroups.com<google-web-toolkit%2bunsubscr...@googlegroups.com>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/google-web-toolkit?hl=en.
>>
>>
>
>
> --
> Damien Picard
> Axeiya Services : http://axeiya.com/
> gwt-ckeditor : http://code.google.com/p/gwt-ckeditor/
> Mon livre sur GWT : http://axeiya.com/index.php/ouvrage-gwt.html
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google Web Toolkit" group.
> To post to this group, send email to google-web-tool...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-web-toolkit+unsubscr...@googlegroups.com<google-web-toolkit%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-web-toolkit?hl=en.
>



-- 
-- A. Stevko
===========
"If everything seems under control, you're just not going fast enough." M.
Andretti

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to