If you see SQLExceptions just because the user navigates too quickly you 
should analyse and fix your server code / database setup / querys!

When you have solved this your only "problem" now is that both RPC 
callbacks will be executed once their corresponding RPC request returns and 
this may cause odd behavior in your UI if not handled. You have to detect 
when a user leaves a page and store that fact in a field (e.g. boolean 
isActive). Your callback should then check this field before executing its 
onSuccess() code.

Using GWT Activities you would set the flag to true in Activity.start() and 
to false in Activity.stop() and Activity.cancel().

Following the documentation for GWT-RPC you could also let your methods 
return "Request" instead of "void", e.g.

interface MyServiceAsync {
  public Request myMethod(String s, AsyncCallback<String> callback);
}

this allows you to cancel the request on the client side (server will still 
do its work once the request reaches the server).

-- J.



Am Freitag, 23. November 2012 19:04:13 UTC+1 schrieb Alexey Panteleev:
>
> Hello,
>
>  I've been struggling with this issue for a long time, maybe someone could 
> help me address this finally?
> From time to time it happens that a user navigates to one page wich issues 
> an RPC to our server but then quickly navigates to another page which 
> issues yet another RPC to the server while the 1st call is still being 
> processed by the server. In this case I always see some kind of 
> SQLException on the server side (I guess for the 1st call) and then the 
> client also receives an unspecified Exception. 
>
>  What is the best practice for dealing with these situations? Should I be 
> canceling the 1st call before allowing the 2nd one?
> We use gwt-dispatch, I did not find  a cancel method in that framework 
> yet. Or should I not allow any new calls until the active one has not 
> finished?
>
>  Do you ever run into this w/ GWT?
>
> Thanks much,
> Alexey
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/google-web-toolkit/-/nFHaBMbOL8oJ.
To post to this group, send email to google-web-toolkit@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