2017-01-15 1 views
-2

기능 내가보기 십초 (10000 밀리 초)기능 업데이트되지 않은 데이터 매 10 초 후에

$(window).load(function(){ 
    setTimeout(function() { 
    jQuery.support.cors = true; 
    $.ajax({ 
     url: url, 
     data: { 
     format: 'json' 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
alert(textStatus + ': ' + errorThrown); 
}, 
     dataType: 'json', 
     crossDomain: true, 
     success: function(data) { 
     var sensorsData = data.arduino; 
     renderHTML(sensorsData); 
     }, 

     type: 'GET' 
    }); 
}, 10000); 
}); 

에서 live 데이터

을 시간을 설정 한 경우에도, 매 10 초 후에 최신 데이터를 업데이트하지 않습니다
function renderHTML(data) 
{ 
    var sensorDataContainer = document.getElementById("displaySensorData"); 
    var htmlString = "<table style='width:100%'><tr><th>Location</th><th>Temperature</th><th>Humidity</th></tr>"; 
    for (i = 0; i < data.length; i++){ 
     htmlString += "<tr align='center'><td>"+ data[i].location + "</td><td>" + data[i].temperatureInC + "&deg;C/ " + data[i].temperatureInF + "&deg;F </td> <td> " + data[i].humidity + "%</td></tr>"; 
    } 
    htmlString += "</table>" 
    sensorDataContainer.insertAdjacentHTML('beforeend', htmlString); 
} 

내가 배치 한 Google 게이지가 업데이트 되긴하지만. 내가 무엇을 놓치고 있습니까?

+1

나는 그것이 setInterval이어야한다고 생각합니다 :) – Deep

+0

'setTimeout'에 대한 문서를 읽으십시오. 그러면 반복되지 않습니다. 그러나'setInterval'은 않습니다. – Kroltan

+0

@Kroltan 왜냐하면 나는 각 간격 후에 같은 기능에서 renderHTML을 사용하고 있기 때문에 새로 고치는 대신 표를 몇 번이고 다시 렌더링하고 있기 때문입니다. [위의 게시물에서 코드를 업데이트했습니다] –

답변

1

업데이트

변경이 줄이로

sensorDataContainer.insertAdjacentHTML('beforeend', htmlString); 

:

sensorDataContainer.innerHTML = htmlString; 


변경 setTimeout setInterval

시간 초과는 주어진 시간 후에 한 번 발생합니다. 간격은 주어진 시간마다 발생합니다.

+0

그냥 동일한 기능 내에서 renderHTML을 사용하고 있기 때문에 setInterval로 변경하면 매 10 초마다 HTML 표 렌더링이 계속해서 반복됩니다. –

+0

나는 완전히 엉망인 상황을 느끼기 때문에 매 10 초마다 json을 가져와야하지만, 성공하면 renderHTML이 다시 실행됩니다. –

+0

그럼 렌더링을 원하지 않으면 왜 10 초마다 렌더링합니까? 정확히 무엇을 성취하려고하는지 잘 모르겠다 –

관련 문제