0
이 코드가 실행 된 후 어떤 콘솔 로그가 될 수 있습니까?이미지 src 속성을 설정 한 직후에 이벤트를 불러올 수 있습니까?
var img = new Image;
img.onload = function() { console.log('B'); };
img.src = 'image.jpg';
for (var i=0;i<100000;i++) {
console.log('A');
}
내가 알고있는 바로는 A...AB
일 것입니다. 하지만 A...B...A
또는 BA...A
일 수 있습니까? 예를 들어, image.jpg 파일이 매우 작고 연결 속도가 매우 빠르면
'load' 이벤트를 사용하는 것이 신뢰할 수 없다는 점도 주목할 가치가 있습니다. http://api.jquery.com/load-event/의 "주의 사항"섹션을 참조하십시오. –
하지만 자바 스크립트는 단일 스레드이므로 루프 안의 다른 코드는 실행할 수 없으므로 onload 이벤트는 실행할 수 없습니다. 스레드가 사용 중이기 때문에 호출 될 수 있습니다. 맞아? –
@Andrey 실제로, 당신 말이 맞아 보이는군요! JSFiddle 및 [this answer] (http://stackoverflow.com/questions/3939315/are-callbacks-always-asynchronous/3939351#3939351)의 모든 테스트는'main()'함수가 실행을 완료해야한다는 것을 나타내는 것 같습니다. 비동기 이벤트가 트리거 될 수 있습니다. 재미있는 - 나는 항상 이벤트가 다른 스레드에서 실행되었다고 생각했다. –