, поэтому у меня проблема с моей страницей PHP. По сути, у меня есть таймер обратного отсчета до 300 с, потому что каждые 5 минут я обновляю данные на странице, не делая полного обновления. Таймер обратного отсчета перезапускается через 300 с после нажатия 0 с.
Проблема в том, что со временем слишком много xhr запросов.
После первых пяти минут он выполняет только два запроса. Загрузка веб-страницы и др.
Но через пять минут снова (теперь 10 минут) он делает 4 запроса: два раза на веб-страницу и два раза на jquery. Итак, у нас всего 6 запросов. И количество запросов продолжает расти!
И это продолжается и каждые 5 минут, достигая более 2000 запросов в час!
Таким образом, он просто съедает процессор пользователя и ожидает загрузки всех запросов, прежде чем снова запускать мой таймер обратного отсчета, то есть он не обновляет данные каждые 5 минут, как я хочу.
Вот код:
function progress(timeleft, timetotal, $element) {
var progressBarWidth = timeleft * $element.width() / timetotal;
$element
.find('div')
.animate({ width: progressBarWidth }, timeleft == timetotal ? 0 : 1000, "linear")
.html(timeleft + " secondes restantes");
if(timeleft > 0) {
setTimeout(function() {
progress(timeleft - 1, timetotal, $element);
}, 1000);
}
};
progress(300, 300, $('#progress'));
$(document).ready(function() {
var btn = document.createElement("div");
var refreshId = setInterval(function() {
$("#body").load('/app/phase/dashboard.php?B=winciel');
}, 300000); // 300000
$.ajaxSetup({ cache: false });
});
И часть HTML:
<link rel="stylesheet" type="text/css" href="./node_modules/bootstrap-
4/css/bootstrap.css" />
<script src="./node_modules/jquery/dist/jquery.js"></script>
<div id="body">
<div id="progress" style="width: 1000px;margin: 10px auto;height:
22px;background-color: #0A5F44;">
<div id="progressBar" class="bar" style="height: 100%;text-align:
right;padding: 0 10px;line-height: 22px;width: 0;background-color:
#CBEA00;"></div>
</div>
Div "body" заканчивается в конце страницы. Там также есть вкладка с обновленными данными, но я не думаю, что она здесь нужна.
Как вы можете видеть на скриншоте, за 25 минут 58 запросов, что является проблемой. Поскольку каждые 5 минут должно выполняться только 2 запроса, он должен делать (25/5) * 2 = 5 * 2 = 10 запросов, а не 58.
Заранее спасибо за попытку помочь мне!
