简体   繁体   中英

PHP ajax multiple calls

I have been looking for several answers around the web and here, but I could not find one that solved my problem.

I am making several JQuery ajax calls to the same PHP script. In a first place, I was seeing each call beeing executed only after the previous was done. I changed this by adding session_write_close() to the beginning of the script, to prevent PHP from locking the session to the other ajax calls. I am not editing the $_SESSION variable in the script, only reading from it.

Now the behaviour is better, but instead of having all my requests starting simultaneously, they go by block, as you can see on the image:

请求时间表

What should I do to get all my requests starting at the same moment and actually beeing executed without any link with the other requests ?

For better clarity, here is my js code:

        var promises = [];
        listMenu.forEach(function(menu) {
            var res = sendMenu(menu);//AJAX CALL
            promises.push(res);
        });
        $.when.apply(null, promises).done(function() {
            $('#ajaxSpinner').hide();
            listMenu = null;
        });

My PHP script is just inserting/updating data, and start with:

<?php

session_start();
session_write_close();

//execution

I guess I am doing things the wrong way. Thank you in advance for you precious help !!

Thomas

This is probably a browser limitation, there is a maximum number of concurrent connections to a single server per browser instance. In Chrome this has been 6, which reflects the size of the blocks shown in your screenshot. Though this is from 09, I believe it's still relevant: https://bugs.chromium.org/p/chromium/issues/detail?id=12066

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM