可以同时进行多个Ajax请求吗?

时间:2016-05-07 00:29:51

标签: php jquery ajax

我是jquery和Ajax的新手,我有以下问题。

是否允许多个Ajax请求?我使用PHP,我希望通过jquery Ajax进行表单提交,同时触发另一个Ajax请求,它将执行另一项任务。所有这一切都没有用户等待每个请求完成。

这可能吗?

感谢帮助人员!

*编辑* 我尝试了但是如果我尝试将浏览器重定向到另一个页面,它会等到ajax完成后再继续。

这是我测试的代码。

   /* populate subcategory dropdown based on category select */
$('#categoria-selector').change(function (e) {
    var cat = $("#categoria-selector option:selected").text();
    alert(cat);

    $.ajax({
        type: "POST",
        url: baseurl + 'precios/test',
        success: function (data, status, xhr) {
            alert('second alert');
        }
    });

    $.ajax({
                type: "POST",
                url: baseurl + 'precios/test2',
                success: function (data, status, xhr) {
                    alert('third alert');
                }
            });
});

在我的控制器上我有以下功能

 function test() {
        //sleep for 5 seconds
        $first = date('Y-m-d H:m:s');
        sleep(10);
        $second = date('Y-m-d H:m:s');
//start again
        $_SESSION['mivar'] = 'Started at ' . $first . ' and ended at ' . $second;
    }

    function test2() {
        //sleep for 5 seconds
        $first = date('Y-m-d H:m:s');
        sleep(30);
        $second = date('Y-m-d H:m:s');
//start again
         $_SESSION['mivar2'] = 'Started at ' . $first . ' and ended at ' . $second;
    }

2 个答案:

答案 0 :(得分:3)

是的,您可以同时拥有多个ajax请求。

浏览器限制您可以对单个域发出的同时请求数,因此每个浏览器都有不同的限制。大多数浏览器将同时请求的最大数量限制为6.(http://www.browserscope.org/?category=network

修改 - 对于您的输出,您看到的是什么时间戳?这可能是服务器端问题吗?例如。你使用的是一次只处理一个ajax请求的单线程(dev)服务器吗?

也可以中止ajax请求,因此如果你需要取消现有的请求,你可以这样做。这篇文章有更多细节:Abort Ajax requests using jQuery

答案 1 :(得分:0)

你可以并行执行ajax。这就是一切的目的。

但你不应该试图将浏览器重定向到另一个页面"响应ajax调用。您将数据返回到javascript并对其进行操作。