我有两个AJAX请求。使用$.post(/updatechart, [...])
重复触发一个请求(setInterval()
)。选择下拉菜单中的一项时,将触发第二个($.post(/updateperiod, [...])
)。由于第二个请求,如果我多次触发第二个请求,则第一个请求会在一段时间后停止工作。有时,他们俩都停止工作。有人可以告诉我如何解决这个问题吗?
编辑: 停止工作=请求不再发送到服务器
EDIT2 :感谢IcePickle,我解决了该问题。我没有发送对第二个AJAX请求的响应。
var retrieved;
var period_types = {
week: "Expenses this week",
month: "Expenses this month",
year: "Expenses this year"
};
$(document).ready(function(){
setInterval(function() {
updateGraph();
}, 1000);
$(".dropdown-item").click(function() {
var new_period = $(this).attr('value');
$.post("/updateperiod", data = {period: new_period});
});
});
function updateGraph() {
$.post("/updatechart", function(response) {
retrieved = response;
drawGraph(retrieved);
});
}
function drawGraph(response) {
var x_axis = []
var y_axis = []
var data = [];
response.db.forEach(element => {
x_axis.push(element.amount);
y_axis.push(element.category);
});
data = [
{
type: 'bar',
y: y_axis,
x: x_axis,
orientation: 'h',
marker: {
color: 'rgb(33, 40, 109)'
}
}
];
Plotly.newPlot('myDiv', data);
document.getElementById("p1").innerHTML = period_types[response.period];
}
答案 0 :(得分:0)
您可以在$.post()
上添加设置参数,该参数等于$.ajax()
方法,您可以在其中设置选项:
settings: {
"async": "false"
}
因此您可以在页面上发出多个ajax请求。