const updateDiv = () = {
/* Делаем AJAX запрос. Если используется хоть что-то на клиенте, например jquery, можно написать проще */
var xhr = new XMLHttpRequest();
xhr.open('GET', 'updated_div.html', true); // эта страница выдаёт вёрстку нашего дива
xhr.onreadystatechange =() => {
if (xhr.readyState != 4) return;
if (xhr.status != 200) {
/* Запрос успешен, выводим в div */
document.getElementById('fon2').innerHtml = xhr.responseText
} else {
/* Ошибка запроса, обрабатываем в зависимости от ситуации */
alert(xhr.responseText);
}
setTimeout(updateDiv, 60000); // Ставим таймер на следующее обновление
}
xhr.send();
}
// Вызвать для первого обновления div-а
updateDiv();
На самом деле не совсем правильно передавать innerHtml, у вас же скорее всего не обновляется макет, только данные. Тогда можно было бы сделать 'jsx для бедных', вроде такого
getDivLayout = (data) => {
return `<a href='${data.url.replace("'", "\\'")}'>${data.text}</a>`;
}
и, соответственно, с сервера отправлять json, в onreadystatechange при успешном ответе его парсить и передавать в getDivLayout, результат которого уже вставлять в innerHtml div-а