После некоторой отладки я заметил, что ответ задается для файла в свойстве response и имеет свойство lastModified!
Модификация кода в ответе @ bugfroggy, похоже, это работает:
function checkForChanges() {
var contentDate = null;
var frequency = 5000;
setInterval(() => {
let xmlhttp = new XMLHttpRequest();
xmlhttp.addEventListener("load", (progressEvent) => {
console.log("Content loaded()");
if (contentDate==null) {
contentDate = xmlhttp.response.lastModified;
return;
}
if(xmlhttp.response.lastModified != contentDate) {
window.location.reload(true);
}
});
//xmlhttp.open("GET", window.location.href);
xmlhttp.open("HEAD", window.location.href);
//xmlhttp.responseType = "blob";
xmlhttp.send();
}, frequency);
}
checkForChanges();
Примечание: я думаю, что в приведенном выше коде используются функции ES5 или ES6, и я не знаю, будет ли это работатьсервер (http://
или https://
).