자바스크립트 - setInterval
阿神
阿神 2017-06-12 09:24:04
0
2
697

Windows 브라우저에서 이 코드를 실행할 때의 실행 시간은 Mac에서 이 코드를 실행할 때의 실행 시간과 매우 다릅니다.
이 방법은 1ms마다 출력을 수행합니다. Windows와 Mac에 차이가 있는 이유는 무엇인가요? Mac에서는 분명히 속도가 느려집니다.

으아악
阿神
阿神

闭关修行中......

모든 응답(2)
女神的闺蜜爱上我

예, settimeout과 setinterval이 특히 정확하지 않은 경우가 많습니다. 그 이유는 js가 단일 스레드이기 때문입니다

setInterval의 콜백 함수는 타임아웃 직후에 실행되지 않고, 시스템 컴퓨팅 리소스가 유휴 상태가 된 후에 실행됩니다

setInterval 콜백 함수가 실행될 때까지 다음 트리거 시간은 시작되지 않습니다

그래서 setInterval 내에서 수행되는 계산이 너무 시간이 많이 걸린다면

또는 시간이 많이 걸리는 다른 작업이 실행되는 경우 setInterval의 타이밍이 점점 부정확해지고 지연이 심각해집니다.

学霸

간단한 예를 들어보겠습니다:

으아악

누가 먼저 실행할지 추측해 보세요. js是单线程的,但是浏览器是可以控制多线程的,当我们设置setTimeOut的时候,其实浏览器会调用一个线程,而这个线程就叫做Event Loop,让这个线程帮我们去执行,而主线程则继续执行下面的代码,这也就是我们经常会说到的异步模式라고 말하지만.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿