Пример функции для выборочного обновления контента:
async function elementUpdate(selector) {
try {
var html = await (await fetch(location.href)).text();
var newdoc = new DOMParser().parseFromString(html, 'text/html');
document.querySelector(selector).outerHTML = newdoc.querySelector(selector).outerHTML;
console.log('Элемент '+selector+' был успешно обновлен');
return true;
} catch(err) {
console.log('При обновлении элемента '+selector+' произошла ошибка:');
console.error(err);
return false;
}
}
Вызывайте функцию
elementUpdate() передав внутрь него CSS-селектор того элемента, который вы хотите обновить.
Например, если хотите обновить div-блок который имеет класс
test, то достаточно выполнить:
elementUpdate('.test');
Если хотите выполнять обновление каждую секунду, можно использовать цикл:
// Запускаем функцию autoUpdate по готовности страницы:
document.addEventListener('DOMContentLoaded', autoUpdate);
// Функция для запуска цикла:
async function autoUpdate() {
// Бесконечный цикл:
while (true) {
// Обновляем блок .test:
await elementUpdate('.test');
// Выжидаем 1000 миллисекунд перед повторением цикла:
await new Promise(function(s) { setTimeout(s, 1000); });
}
}
// Функция для обновления контента:
async function elementUpdate(selector) {
try {
var html = await (await fetch(location.href)).text();
var newdoc = new DOMParser().parseFromString(html, 'text/html');
document.querySelector(selector).outerHTML = newdoc.querySelector(selector).outerHTML;
console.log('Элемент '+selector+' был успешно обновлен.');
return true;
} catch(err) {
console.error('При обновлении элемента '+selector+' произошла ошибка:', err);
return false;
}
}