1. periodicalExecuter 클래스

타이머(Timer) 처리를 위한 클래스이다. 실행주기와 타이머 이벤트가 발생할때 실행할 메서드를 정의한다.
샘플예제

1. 주요 메서드 목록

주요 메소드

메서드기능개요
initializenew 연산자를 사용하여 PeriodicalExecuter 클래스로 타이머 인스턴스를 생성할 때 실행되는 생성자 메서드이다. 초기값을 설정한다.
registerCallback초 단위의 실행주기와 실행주기마다 호출 될 onTimerEvent() 메서드를 설정한다. 즉 타이머를 설정한다.
onTimerEvent실행주기가 경과했을 때 자동으로 실행된다.
stop타이머를 종료한다.

2. 메소드별 사용법 및 특징


var PeriodicalExecuter = Class.create({
  initialize: function(callback, frequency) {
    this.callback = callback;
    this.frequency = frequency;
    this.currentlyExecuting = false;

    this.registerCallback();
  },

  registerCallback: function() {
    this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
  },

  execute: function() {
    this.callback(this);
  },

  stop: function() {
    if (!this.timer) return;
    clearInterval(this.timer);
    this.timer = null;
  },

  onTimerEvent: function() {
    if (!this.currentlyExecuting) {
      try {
        this.currentlyExecuting = true;
        this.execute();
      } finally {
        this.currentlyExecuting = false;
      }
    }
  }
});

Class.create를 통하여 생성된 클래스로 일정 주기로 반복하여 메서드를 호출한다. 사용 방법은 반복하여 수행할 메서드와 실행 주기를 아규먼트로 넘겨 주면 된다.
구현되어 있는 메소드들은 모두 외부에서 사용할수 없다.


예제명 : periodicalExecuter.html
Event.observe(window, 'load', function() {
    Event.observe('startClick', 'click', PeriodTimer.startClick);
    Event.observe('stopClick', 'click', PeriodTimer.stopClick);
});
var PeriodTimer = {
    endButton: '',
    startClick: function(event) {
        PeriodTimer.count = 0;
        if (!PeriodTimer.endButton) {
            PeriodTimer.countTimer = new PeriodicalExecuter(PeriodTimer.runPeriodTimer, 1);
        }
        PeriodTimer.endButton = true;
    },

    runPeriodTimer: function() {
        PeriodTimer.count++;
        $('show1').innerHTML = '경과 시간(초) --> ' + PeriodTimer.count;
    },

    stopClick: function(event) {
        PeriodTimer.countTimer.stop();
        PeriodTimer.endButton = '';
    }
}

설명 할 내용 없음.

문서에 대하여

  • 최초작성자 : 허용운
  • 최초작성일 : 2008년 01월 03일
  • 이 문서는 Ajax prototype.js 프로토타입 완전분석을 정리한 내용 입니다.
  • 이 문서를 다른 블로그나 홈페이지에 퍼가실 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^\^