0

외부 소스에서 데이터를 가져 오는 앱이 있습니다. 5 ~ 10 분마다 앱의 상태를 업데이트해야하는지 다시 확인하고 싶습니다.setInterval을 사용하여 데이터를 업데이트하는 올바른 방법

은 더 긴 시간 제한 setInterval()을 사용 (같은 300s 또는 무언가) 다음 업데이트하는 것입니다, 또는이있었습니다 경우 더 나은 마지막 업데이트가 완료 될 때 확인 새 데이터를 가져 오는 다음마다 1s 좋아 폴링하는 것입니다 5 분 이상.

하나가 다른 것보다 낫다면 성능 관점에서 궁금해 할 것입니다. 전에는 실제로 제대로 구현하지 못했습니다.

+0

앱에 대해 많이 알지 못합니다. 얼마나 많은 사람들이 그것을 사용할 것인가, 어떤 종류의 서버를 호스팅 할 것인가 등등. "실시간"(1 초 또는 거기 어딘가에있는) 데이터를 볼 필요가 없다면 setInterval()을 사용하십시오. – pmahomme

답변

1

첫 번째 방법은 성능 향상입니다. 두 번째 방법은 서버에 대한 불필요한 요청을 처리하는 것입니다.

0

사례 1 : 응용 프로그램에 따라 다릅니다. 당신이 fb와 같은 실시간 응용 프로그램을 만들었는지 확인하십시오. 그러면 사용자가 지연 알림을 받기 때문에 매 3/5 분마다 업데이트하는 것이 좋지 않습니다.

사례 2 : 3/5 분 간격으로 현재 온도를 알려주는 앱을 만들었다 고 가정 해 보겠습니다. 이것은 응용 프로그램 기능에 전적으로 달려 있습니다.

socket.io를 사용할 수 있습니다. 귀하의 요구에, 당신은 일반적으로 이것에 대한 setInterval을 사용하지 않으려는 무엇이든

1

, 그것은 조건을 경주 미끄러운 도로의 (- 일부 네트워크 단점에 대해 - 경우 상상 최초하여 setInterval은 다음 한 후 을 반환). 당신은 setTimeout를 사용하려면 :

function update() { 

    fetch(url).then(function(response) { 
    return response.json(); 
    }).then(function(json) { 
    // ... do something with your json ... 
    setTimeout(update, 1000); // <-- now that this call is done, 
           //  we can program the next one 
    }).catch(function(err) { 
    // Error :(
    setTimeout(update, 1000); // <-- there was a network problem, 
           //  but still, program the next one! 
    }); 


} 

update(); 

이 예제는 새로운 API를 가져 오기 사용하지만 어떤 경우에 지점을해야한다.

5 분마다 새로운 데이터가 필요하므로 긴 시간 제한을 사용하십시오. 위와 같이 1000 대신에 5 * 60 * 1000을 사용합니다.

관련 문제