jquery 플러그인으로 jquery timer가 있다.

아래 메서드 들이 있다고 한다.


everyTime : 계속동작

oneTime : 1번 동작

stopTime : 동작 취소, label만 넣어도 되고 label, fn을 넣으면 특정 fn만 취소 된다.

 http://www.jquery-plugins.info/jquery-timers-00013992.htm

3개의 매개변수를 받는다.

$(document).everyTime(timerInterval, "CheckTimer", doCheckTimer);  

1. 시간 

2. label 

3. 이벤트(함수) 

1. 시간 단위가 10ms 이하로 작게 설정되면 작동하지않는다. 

귀찮아서 소스는 까보지 않았는데 (쓰면서 봤다.)

플러그인 안에서는 특별히 0보다 작거나, NaN, 숫자가 아니면 동작하지 않는다. 

하지만 10ms 등 아주 적은 시간을 주면 동작 하지 않는 경우가 있다. 

setInterval사용시 브라우저 호환성을 위해서는 최소 10ms 이상으로 설정 하라고 하였다.

everyTime이 잘동작하지 않는다면 시간을 너무 적게 준게 아닌지 확인해보자


브라우저별 minimum timer Interval을 테스트 한 내용.

http://www.adequatelygood.com/Minimum-Timer-Intervals-in-JavaScript.html

-> 대부분 브라우저는 10 -15ms 에 동작 한다고 한다. 15ms 이상을 사용하라고 하는것 같다. 


어짜피 자바스크립트는 단일스레드로 동작하고 (ajax같은 애들은 스레드를 생성한다.)

ui 이벤트나 타이머 들은 같이 동작 될때, 대기중인 타이머나 이벤트가 있으면 다른것은 대기하고 중첩요청이 와도 

전부 실행되지않고 1개로 대기 된다. 그래서  setInterval 이 정확한 실행시간을 보장하지 않는다. 

그러니 너무 짜게 주지 말자. 

Posted by 마법수정화살
,