Re: Synchronous call

1,836 views
Skip to first unread message
Message has been deleted

Sebastien

unread,
Apr 24, 2008, 11:43:04 PM4/24/08
to Google Web Toolkit
Hi,

Your question is a bit ambiguous. So I answer to both understanding :

1/ if you talk about locking (synchronized)
The browser do not use several thread for executing the Javascript.
Then you do not have problem of synchronization.
Simply use a local variables to remember which calls are finished.

2/ if you want to do a synchronous call to the server
With GWT all calls to a service on server are asynchronous. Therefore
to do a task after the end of call you have to write the code in the
callback. Therefore your code is split in two parts :

private void m1() {
// first part of code
...
// call to the server
MyService.Util.getInstance().myRemoteMethod("hello world", new
AsyncCallBack() {
public void onSuccess(Object result) {
//second part of the code executed only after the remote
call
}
public void onFailure(Throwable problem) {
//second part of the code executed only after the remote
call
}
} );
//in most case do nothing here because you do not know when it is
executed with regards to the
} //end of m1

The code corresponding to the onSuccess (or onFailure) can also be
written into a separated method in order to the readability of your
code. Your code is therefore divided in two method. I advice you to
read the GWT doc :
http://code.google.com/webtoolkit/documentation/com.google.gwt.doc.DeveloperGuide.RemoteProcedureCalls.html


Regards,
Seb
On Apr 24, 10:45 am, "oualaa hani" <oualaa....@gmail.com> wrote:
> Hi,
>
> Please I want know how cn do synchronous call
>
> Thank you.
Message has been deleted
Message has been deleted

X

unread,
Apr 29, 2008, 11:42:32 AM4/29/08
to Google-We...@googlegroups.com
Aye aye!  I second asynchronicity! If, for some reason, you want pseudo-synchronicity, just add a fulll screen, position:absolute;left:0;top:0;width:100%;height:100%;opacity:0.77;filter:Alpha(77);z-index:777777; div when the request is sent {maybe even include a tasty loading or sending message}, and remove the div when the response returns.

I use this method when the user posts a new entry, and I want my server to make sure it's properly saved before the user starts playing with certain parts of the app...  Like, editing their saved documents... Because I don't want anybody to start requesting a file I haven't saved yet...

On Tue, Apr 29, 2008 at 9:06 AM, Jason Essington <jason.e...@gmail.com> wrote:

It is possible to perform Synchronous XMLHTTP Requests, BUT due to the
asynchronous nature of html, it is a bad idea (tm).

As a result, GWT does not make any effort to allow you to do it
easily. You'd have to write your own extension of the RequestBuilder
that allows Synchronous requests.

The problem with Synchronous requests is that they tend to block the
browser waiting for a response, giving your application the appearance
of being locked up. This is particularly bad application design. You
have no control of the client machine or the network between it and
your servers, and as such can't even dictate how long your application
is going to appear locked.

So, the best idea is to simply use the asynchronous method and
continue execution via the callbacks provided. You will end up with a
much better user experience, and a more professional appearing
application.

-jason

On Apr 24, 2008, at 9:52 PM, oualaa hani wrote:

> Hi,
>
> Thank you for your answer.
>
> All what I wanted to know is, each time we want communicate with
> server we have to do asynchronous call.
>
> regards,
>
> >






--
"He whose desires are drawn toward knowledge in every form will be absorbed in the pleasures of the soul, and will hardly feel bodily pleasure --I mean, if he be a true philosopher and not a sham one." - Plato
"Wise Words Whispered Without Will Won't Wake Worlds" - Alyxandor Artistocles
Reply all
Reply to author
Forward
0 new messages