Hi everybody,

It is a while I have a problem with jquery and I haven't find the
solution, well, actually the cause either.
I am developing a big project in symfony, it is a service portal, and
among some services there are a few that uses external services.

Those external services are integrated in the portal through the use
of components that make the query using ajax (so that it happens
asynchronously while the rest of the page is loaded) to the main
server itself (where the php component queries an external server via
soap or rest). nothing very exciting here.

Whenever there is a problem with one of these services, or one of them
happens to be very slow, if the user tries to stop the loading of the
page (browser stop button) and click on another link or submit another
search (post) or even directly without first clicking on the browser
stop button, the browser seems block, everything is stalled until the
previous slow or not working component (the ajax request) times out.

The problem is particularly visible when searching in the portal: the
main result page loads normally, then three components load related
data from external services, if one of them is for some reason slow or
down a usual loading animation is shown until the timeout is reached.
If for any reason the user tries to make a new search while one of the
services hasn't yet finished loading (or hasn't yet timed out) the
whole page stalls...

I don't really understand what it is going on here as I am not doing
nothing particularly exotic...every component starts an ajax call like
the following, and the url part is on the same server and does the
actual request returning an html snippet:

$(document).ready(function() {
  $.ajax({
    type: "GET",
    url: search/dcbase?q='+query,
    success: dcbaseResponse,
    error: dcbaseError
  });
});

success and error functions only display some messages nothing more...
question are:
- is the browser stop button supposed to stop every on going
connection?
- are multiple ajax requests actually queued? because I have the
impression that some requests got executed only when one finishes...
- is there a way to better control multiple requests?

thanks,
C.

Reply via email to