PHP ajax 多次调用
PHP ajax multiple calls
我一直在网络和此处寻找多个答案,但找不到解决我问题的答案。
我正在多次 JQuery ajax 调用同一个 PHP 脚本。首先,我看到每个调用只在前一个调用完成后才执行。我通过将 session_write_close()
添加到脚本的开头来更改它,以防止 PHP 将会话锁定到其他 ajax 调用。我没有在脚本中编辑 $_SESSION 变量,只是从中读取。
现在的行为更好了,但不是让我的所有请求同时开始,而是按块进行,如图所示:
我应该怎么做才能让我的所有请求在同一时刻开始并在没有任何 link 其他请求的情况下实际执行?
为了更清楚起见,这是我的 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 脚本只是 inserting/updating 数据,并且开始于:
<?php
session_start();
session_write_close();
//execution
我想我做事的方式不对。预先感谢您的宝贵帮助!!
托马斯
这可能是浏览器限制,每个浏览器实例与单个服务器的最大并发连接数。在 Chrome 中,这是 6,这反映了屏幕截图中显示的块的大小。虽然这是 09 年的,但我相信它仍然相关:https://bugs.chromium.org/p/chromium/issues/detail?id=12066
我一直在网络和此处寻找多个答案,但找不到解决我问题的答案。
我正在多次 JQuery ajax 调用同一个 PHP 脚本。首先,我看到每个调用只在前一个调用完成后才执行。我通过将 session_write_close()
添加到脚本的开头来更改它,以防止 PHP 将会话锁定到其他 ajax 调用。我没有在脚本中编辑 $_SESSION 变量,只是从中读取。
现在的行为更好了,但不是让我的所有请求同时开始,而是按块进行,如图所示:
我应该怎么做才能让我的所有请求在同一时刻开始并在没有任何 link 其他请求的情况下实际执行?
为了更清楚起见,这是我的 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 脚本只是 inserting/updating 数据,并且开始于:
<?php
session_start();
session_write_close();
//execution
我想我做事的方式不对。预先感谢您的宝贵帮助!!
托马斯
这可能是浏览器限制,每个浏览器实例与单个服务器的最大并发连接数。在 Chrome 中,这是 6,这反映了屏幕截图中显示的块的大小。虽然这是 09 年的,但我相信它仍然相关:https://bugs.chromium.org/p/chromium/issues/detail?id=12066