【发布时间】: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