У меня есть два запроса AJAX. Один из запросов ($.post(/updatechart, [...])
) запускается повторно с использованием setInterval()
. Второй ($.post(/updateperiod, [...])
) срабатывает при выборе элемента из выпадающего меню. Из-за второго запроса первый перестает работать через некоторое время, если я запускаю второй несколько раз. Иногда они оба перестают работать. Может кто-нибудь сказать мне, как я могу это исправить?
EDIT:
перестает работать = запрос больше не отправляется на сервер
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];
}