【问题标题】:PHP ajax multiple callsPHP ajax 多次调用
【发布时间】:2017-01-09 20:27:03
【问题描述】:

我一直在网上和这里寻找几个答案,但我找不到解决我问题的答案。

我正在对同一个 PHP 脚本进行多个 JQuery ajax 调用。首先,我看到每个呼叫只有在前一个呼叫完成后才被执行。我通过将session_write_close() 添加到脚本的开头来更改此设置,以防止PHP 将会话锁定到其他ajax 调用。我没有在脚本中编辑 $_SESSION 变量,只是从中读取。

现在行为更好了,但不是让我的所有请求同时开始,而是按块进行,如图所示:

我应该怎么做才能让我的所有请求同时开始并实际执行而与其他请求没有任何链接?

为了更清楚,这是我的 js 代码:

        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;
        });

我的 PHP 脚本只是插入/更新数据,然后开始:

<?php

session_start();
session_write_close();

//execution

我想我做事的方式不对。提前感谢您的宝贵帮助!!

托马斯

【问题讨论】:

标签: php jquery ajax asynchronous jqxhr


【解决方案1】:

这可能是浏览器的限制,每个浏览器实例有一个服务器的最大并发连接数。在 Chrome 中,这是 6,它反映了屏幕截图中显示的块的大小。虽然这是从 09 年开始的,但我相信它仍然具有相关性:https://bugs.chromium.org/p/chromium/issues/detail?id=12066

【讨论】:

猜你喜欢
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 1970-01-01
  • 1970-01-01
  • 2021-08-02
  • 2020-05-01
相关资源
最近更新 更多