2012-01-25 3 views
1

JavaScript로 두 이벤트를 동시에 처리하지 못하도록하려면 어떻게합니까? 이 경우에는 document.addEventListener('keydown',function(e) {},false) 과 같이 선언 된 이벤트 핸들러가 있습니다. 처리기가 현재 이벤트를 처리 할 때까지 핸들러가 이벤트를 처리하지 않게하려고합니다.자바 스크립트에서 이벤트 핸들러가 여러 이벤트를 동시에 처리하지 못하도록하려면 어떻게해야합니까?

답변

3

자바 스크립트는 단일 스레드이므로 현재 이벤트 처리가 다음 이벤트가 트리거되기 전에 완료됩니다. 한 번에 하나의 이벤트 만 처리되도록하려면 아무 것도 할 필요가 없습니다.

당신이 다른 글에서이 주제에 대해 자세히 알아볼 수 있습니다 :

How does JavaScript handle AJAX responses in the background?이 (이벤트 큐 자바 스크립트에서 작동 방법을 설명합니다) 동시 이벤트로 아무것도

Can JS event handlers interrupt execution of another handler?

Race conditions with JavaScript event handling?

0

없다 손질. 이벤트 순서는 사용중인 브라우저에 따라 다릅니다. 캡처 또는 버블 링 모델에서 이벤트를 등록하는 방법을 결정하거나 w3c 모델에서 두 가지 모두를 사용하는 것은 사용자입니다.

예를 들어 W3c 모델에서 W3c 모델에서 발생하는 모든 이벤트는 대상에 도달 할 때까지 캡처 된 다음 다시 거품이 발생하기 시작합니다.

addEventListner() 메서드를 통해 캡처 또는 버블 링 단계에서 이벤트를 등록 할 수 있습니다.

관련 문제