Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 테스트
- Javascript
- Ajax
- 빅데이터
- AngularJS
- JQuery
- 개발환경
- 크로스브라우징
- node.js
- MongoDB
- 마이크로소프트
- CoffeeScript
- Microsoft
- git
- 오픈소스
- 콜백 함수
- 마소
- non-blocking
- NoSQL
- npm
- github
- 웹디자인
- CSS
- 자바스크립트
- 인턴
- callback function
- 제이쿼리
- 750R
- Python
Archives
- Today
- Total
Inspired World
JavaScript 비동기 프로그래밍 소개 및 setTimeout 최소값 본문
Callback 함수를 호출 할 때
Node.js 에서는 process.nextTick을 사용하지만
참고: JavaScript 콜백 함수의 활용
클라이언트 JavaScript에서는
전통적인 setTimeout을 이용하여 Event Loop을 지연합니다.
위 그림과 같이 JavaScript 는 Event Loop ( 이벤트 루프 )을 사용하는데요.
Thread 와 달리 정확하게 말해서 완전 동시에 일을 할 수 없기 때문에
다음 일을 미루어 줌으로써 block이 되지 않게 하는 것이 포인트입니다.
그냥 단순 타이머로써 setTimeout 을 활용할 수도 있지만
callback 함수를 setTimeout을 통해 호출함으로써 이벤트를 지연할 수 있고 따라서 프로그램이
block 되지 않게 할 수 있습니다.
이것이 기본적인 Asynchronous Programming ( 비동기 프로그래밍 ) 입니다.
Ex)
Event Loop ( 이벤트 루프 )을 사용하는 JavaScript 같은 경우에는 이런 프로그래밍을 해줌으로써
JavaScript로 여러가지 일을 할 때에도 다른 이벤트를 받아들일 수 있어 사용자가 느끼기에
더 쾌적하고 빠르게 느껴집니다.
※ Node.js 의 경우 setTimeout 대신
process.nextTick(function () {
// Do some work
});
process.nextTick 함수를 이용하면 됩니다.
참고: process.nextTick vs setTimeout 성능 벤치마크
하지만 브라우저 마다 JavaScript엔진이 다르고
버전마다 또 다르다보니 setTimeout 최소값이 궁금해서 찾아보았습니다.
확인 결과
하위버전 호환성을 위해서는 최소값을 10ms
HTML5 지원 브라우저만 생각한다면 최소값을 4ms
참고: Mozilla Developer Network - window.setTimeout
Node.js 에서는 process.nextTick을 사용하지만
참고: JavaScript 콜백 함수의 활용
클라이언트 JavaScript에서는
전통적인 setTimeout을 이용하여 Event Loop을 지연합니다.
위 그림과 같이 JavaScript 는 Event Loop ( 이벤트 루프 )을 사용하는데요.
Thread 와 달리 정확하게 말해서 완전 동시에 일을 할 수 없기 때문에
다음 일을 미루어 줌으로써 block이 되지 않게 하는 것이 포인트입니다.
그냥 단순 타이머로써 setTimeout 을 활용할 수도 있지만
callback 함수를 setTimeout을 통해 호출함으로써 이벤트를 지연할 수 있고 따라서 프로그램이
block 되지 않게 할 수 있습니다.
이것이 기본적인 Asynchronous Programming ( 비동기 프로그래밍 ) 입니다.
Ex)
var example = function(callback) {
// Do some work
if (callback === 'function') {
setTimeout(function() { callback(); }, 10);
}
};
example(function() {
alert('example work is done');
});
Event Loop ( 이벤트 루프 )을 사용하는 JavaScript 같은 경우에는 이런 프로그래밍을 해줌으로써
JavaScript로 여러가지 일을 할 때에도 다른 이벤트를 받아들일 수 있어 사용자가 느끼기에
더 쾌적하고 빠르게 느껴집니다.
※ Node.js 의 경우 setTimeout 대신
process.nextTick(function () {
// Do some work
});
process.nextTick 함수를 이용하면 됩니다.
참고: process.nextTick vs setTimeout 성능 벤치마크
하지만 브라우저 마다 JavaScript엔진이 다르고
버전마다 또 다르다보니 setTimeout 최소값이 궁금해서 찾아보았습니다.
확인 결과
하위버전 호환성을 위해서는 최소값을 10ms
HTML5 지원 브라우저만 생각한다면 최소값을 4ms
참고: Mozilla Developer Network - window.setTimeout
'JavaScript' 카테고리의 다른 글
AngularJS의 Model이 바뀌었는데 UI가 바뀌지 않을 때 (0) | 2014.04.22 |
---|---|
구글의 AngularJS 프레임워크 (3) | 2014.04.10 |
CoffeeScript로 즐거운 JavaScript 코딩하기 (2) | 2012.07.19 |
JavaScript 에서 객체지향 프로그래밍(OOP) 하기 (0) | 2012.03.09 |
JavaScript 콜백 함수의 활용 (4) | 2012.02.12 |
Comments