지금 당장 브라우저 이벤트와 약간 혼동스러워합니다. 나는 여전히 어떻게 이벤트 루프가 작동하기 시작하는지 확신하지 못한다. 예를 들어, 일부 기능의 중간에 사용자 지정 이벤트를 디스패치하면 즉시 이벤트 처리가 시작되거나 이벤트 큐로 이동합니까? 다른 이벤트는 어떻습니까? 클릭하거나 페이지가로드되면 어떻게됩니까? 이벤트 처리 프로세스는 언제 시작됩니까?JS 브라우저 이벤트 처리
답변
나는 이벤트 루프가 어떻게 작동하는지 아직 확신하지 못한다.
일반적으로 브라우저에서는 페이지를 입력하자 마자 작업을 시작하고 종료 할 때 작업을 중단합니다.
예를 들어, 일부 기능의 중간에 사용자 지정 이벤트를 디스패치하면 즉시 이벤트 처리가 시작되거나 이벤트 큐로 이동합니까?
동기 이벤트 (즉각 발사 됨)와 다음 반복에서 발생하는 비동기 이벤트가 있습니다. 코드가 일 때이 실행 종료까지 실행되고 이면 명시 적으로 종료하지 않는 한 else가 실행됩니다.
DOM 사용자 지정 이벤트는 일반적으로 동기입니다. 즉, - 당신은 그들을 방아쇠를 당기는 사람이고 바로 발생합니다.
예를 들어 코드가 실행 중일 때 "click"
이벤트가 발생하거나 setTimeout
으로 설정된 타이머가 실행되면 코드가 먼저 실행되고 아무 것도 코드를 인터럽트하지 않습니다.
:언제 이벤트 처리 프로세스가 시작됩니까?
이벤트 동기 또는 비동기 중 하나를 파견 할 수있다.
동기 이벤트 (동기 이벤트)는 선입 선출 (first-in-first-out) 모델의 가상 대기열에있는 것처럼 처리해야하며 다른 이벤트와 관련하여 일시적으로 발생하는 순서로 DOM 및 사용자 상호 작용 이 가상 대기열의 각 이벤트는 이전 이벤트가 전파 동작을 완료하거나 취소 될 때까지 지연되어야합니다. 일부 동기화 이벤트는 마우스 단추 이벤트와 같은 특정 장치 또는 프로세스에 의해 구동됩니다. 이러한 이벤트는 해당 이벤트 집합에 대해 정의 된 이벤트 순서 알고리즘에 의해 관리되며 사용자 에이전트는 정의 된 순서로 이러한 이벤트를 전달해야합니다.
감사합니다. 이제 모든 것이 내 머리 속에 정리되어 있습니다. –