Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why aren't my JQuery .ajax requests being made in parallel?

I am trying to make two ajax requests in parallel using jQuery like this:

    var sources = ["source1", "source2"];

    $(sources).each(function() {
      var source = this;
      $.ajax({
        async: true,
        type: "POST",
        data: {post: "data", in: "here"},
        url: "/my/url/" + source,
        success: function(data) {
          process_result(data);
        }
      });
    });

I got the basic structure from this question, but my requests still aren't being made in parallel. "source1" takes a while to complete, and I can see on the server that the second request isn't made until the first is completed.

As far as I can tell, I don't have any other active requests, so I don't think it's a problem with the maximum number of parallel requests for the browser. Am I missing something else here?

like image 966
Ryan Olson Avatar asked Mar 29 '10 18:03

Ryan Olson


2 Answers

jQuery does not queue AJAX requests. If you're sure you're not making any other requests your end, how about the server? Maybe it only has one worker?

EDIT: And just to make sure, I tested it with a script that launches 2 AJAX POST requests to a PHP script which sleeps for 5 seconds. They were not queued.

like image 66
Matt Avatar answered Nov 14 '22 20:11

Matt


are you using php? are you using session_start()? sessions cannot be opened in parallel by multiple requests, to they will wait one after another to finish what they're doing.

like image 21
Quamis Avatar answered Nov 14 '22 21:11

Quamis