2017-10-05 7 views
0

이와 같은 기능이 느린 성능입니까, 아니면 나쁜 습관으로 간주됩니까?setInterval을 항상 실행하는 것이 좋지 않습니까?

setInterval(function(){ 
    if(something){ 
     do something 
    } 
}, 100); 

는 끊임없이 뭔가 백그라운드에서 실행이 나쁜 것이 나에게 보인다.

+0

sth가 규칙적으로 실행되어야한다면, 다른 방법으로 거기에있을 것입니다 ?? –

+0

잘 모르겠습니다. 나는 초보자입니다.)하지만 더 배울 것입니다 – NewCodeMan

답변

4

많은 밀리 초마다 명령 집합을 실행하므로 명령이 얼마나 집중적인지, 사용자가 다른 프로세스 또는 웹 페이지에서 실행중인 다른 명령의 수에 따라 "느려질 수 있습니다".

필요하지 않다면 좋지 않습니다. 앱이 밀리 초마다 작업을 수행하는 앱인 경우이를 수행하는 한 가지 방법입니다. 올바른 방식으로 작업을 수행 할 수 없기 때문에 사임하는 경우 사용자의 CPU주기를 괴롭히지 않고 올바른 작업 방식을 찾아 구현해야합니다.

+0

고맙습니다. 그리고 내가 더 좋은 길을 이해할 수 없기 때문에 나는하고있다! 운수 나쁘게! – NewCodeMan

+1

동의 함. 그것은 setInterval 내부의 함수가 무엇을하는지, 나머지 코드베이스가 얼마나 시간에 민감한 지에 따라 달라집니다. 이것은 근본적으로 AngularJS의 다이제스트 루프 뒤에있는 개념으로 $ 범위의 변경 사항을 지속적으로 확인하고 DOM을 다시 계산/다시 그립니다. 따라서 유용 할 수는 있지만 잘 확장되지 않습니다. – mhodges

+2

@NewCodeMan [XY 문제] (http://xyproblem.info/)처럼 들립니다. 제안 된 솔루션에 대해 묻기보다는 알아낼 수없는 것에 대해 물어보십시오. – mhodges