Я использую AJAX для проверки обновлений пользователя каждые 2 секунды, но мой javascript не обновляет ответ.
У меня есть один файл javascript с объектом XMLHttpRequest, и каждые 2 секунды он отправляет запрос в другой файл (.php), где он получает XML с обновлениями. По какой-то причине он не всегда получает новейший контент и, кажется, имеет некоторое старое кеширование.
Мой файл JavaScript содержит этот код (упрощенно):
var updates = new XMLHttpRequest();
updates.onreadystatechange = function(){
"use strict";
if(updates.readyState === 4 && updates.status === 200){
console.log(updates.responseXML);
}
};
var timer = 0;
clearInterval(timer);
timer = setInterval(function(){
"use strict";
updates.open('GET','scripts/check_for_notifications.php', true);
updates.send();
},2000);
Тогда у меня есть файл PHP ( check_for_notifications.php ), где у меня есть этот код:
$response = new SimpleXMLElement('<xml/>');
$update = $response->addChild('update');
$update->addChild('content', 'New message');
$update->addChild('redirect', 'some link');
$update->addChild('date', '1.1.2019 12:00');
header('Content-type: text/xml');
print($response->asXML());
Каждые две секунды я получаю журнал в своей консоли, но когда я изменяю файл PHP, пока идет интервал ( например, я меняю дату на '1.1.2019 11:00' и сохраняю ее ) Я все еще получаю '12: 00' в консоли. Мне кажется, что он не обновляется и все еще имеет repsonseXML в кеше. Есть ли способ, которым я мог «очистить» вывод, или я делаю это неправильно?