Показать сообщение отдельно
  #2 (permalink)  
Старый 16.02.2018, 02:02
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,585

document.write - пишет в тело документа прямо по мере загрузки, т.е. докачался первый кусок - сразу обработан, и результат document.write вкинут прямо на живую в поток обработки поступающего текста.
Потому для динамического обновления его использовать уже нельзя, ибо когда страница загружена - исходный текст выгружается из памяти за не надобностью, остаётся лишь результат разбора в виде сложного объекта - DOM.

Со справкой покончили, теперь код :
function updateInfo(file, target, interval){
  if(typeof target !== 'object')
    target = document.querySelector(target);
  
  function stop(){
    clearTimeout(timer);
    xmlhttp.abort();
  }
  function update(){
    xmlhttp.open('GET', file + '?' + Math.random(), true);
    xmlhttp.send();
  }
  
  var xmlhttp = new XMLHttpRequest(), timer;
  xmlhttp.onreadystatechange = function(){
    if(xmlhttp.readyState !== 4) 
      return;
    
    if(xmlhttp.status !== 200) 
      console.log('updateInfo: ' + xmlhttp.statusText);
    else 
      target.innerHTML = xmlhttp.responseText;
    
    timer = setTimeout(update, interval);   
  }
  
  update();
  
  return {
    start: update,
    stop: stop
  } 
};

updateInfo('./temperatura.txt', 'table td:nth-child(2)', 1000);
__________________
29375, 35
Ответить с цитированием