HTML의 click() 메소드가 동기적으로 실행되는 이유는 무엇입니까?
P粉170438285
P粉170438285 2024-03-19 23:15:17
0
1
390

MDN이 dispatchEvent()를 도입할 때 dispatchEvent()同步运行,但没有找到像MDN或HTML Standard这样的正式文档提到html click()메서드가 동기적으로 실행되거나 합성 이벤트가 동기적으로 실행된다고 말한 것을 발견했습니다. 누군가 나와 관련 파일을 공유할 수 있나요? 정말 감사해요!

아니면 직접 결론에 도달하는 대신 문서에 일부 구현 단계가 설명되어 있을 수도 있나요? dispatchEvent()click() 都会将 isTrusted 属性设置为 false,但不确定 eventListener 통화 시간이 이것에 달려 있는지 확인했습니다.

P粉170438285
P粉170438285

모든 응답(1)
P粉344355715

각 알고리즘 단계에는 "병렬화", "대기열 작업"이 표시되지 않거나 이에 연결된 사양의 모든 항목이 동기식으로 실행됩니다. *

정식 알고리즘의 내용dispatch대상 이벤트는 항상 동기식으로 실행됩니다. EventTarget#dispatchEvent()HTMLElement#click() 또는 실제 사용자가 시작한 이벤트에서 비롯됩니다.

혼란스럽게도 대부분의 경우에 이 예약 이벤트 알고리즘 자체는 작업에 대한 대기 호출로 래핑되므로 실제로 이벤트 발생은 비동기식입니다.

예를 들어 이미지가 로드될 때 a>

여기서 "큐 요소 작업"큐 작업 알고리즘을 호출하고 "트리거 이벤트">스케줄링 알고리즘을 호출합니다.

그렇습니다. 이 경우에는 이미지 로딩이 실제로 발생한 후 load 이벤트가 비동기적으로 실행됩니다.


이제 EventTarget#dispatchEvent()EventTarget#dispatchEvent() (和 HTMLElement#click( )(및 HTMLElement#click( ), 궁극적으로 많은 이벤트 구축 단계와 동일), 새로운 작업을 대기열에 추가하지 않고 dispatch 알고리즘을 직접 호출하는 것을 볼 수 있습니다. .

알고리즘을 동기식으로 호출할 뿐만 아니라 알고리즘 결과를 호출자에게 반환하기도 합니다. 따라서 알고리즘은 병렬로 처리될 수 없으며 호출자는 결과를 얻으려면 모든 핸들러를 동기적으로 호출해야 합니다.

으아아아

* 어쩌면 다른 경우도 있을 수 있지만 저는 그에 대해 알지 못합니다. 만약 그런 경우가 있었다면 충분히 명확했을 것입니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!